- Define and use a few constants for the sake of code maintainability
- Change log package name to logger so it better reflects its purpose
- Fix depredations
- Drop unused private methods and constants
- Create an auxiliary func newFromPrimary() to reduce code duplicacy. Also straight away type conversion doesn't seem to type-check. Got to explicitly create a new struct instance.