Refactored as a singleton with private prototype. Much cleaner yo!!!!