Some rework and clean up
Simplify constructors and inheritance in general
JSHint fixes