Refactoring: used Object Literals for singletons (instead of function with a prototype)
Refactoring: used Gaia name convention for js files
better description
better comment (finished implementing enhancement #1)