Module prototype
Refactor code structure
Add () as well as undefined handling
Wrap it up in a closure manually before Grunt tasks are ready
Merge remote-tracking branch 'origin/master' into develop