Feature/enforce module pattern

Every module is now a singleton module instead of prototype pattern based constructor functions.