Object-Oriented Javascript functionality. Namespaces, Modules and Classes