Use a Singleton trait
Make Core a Singleton as well.

(also add the Options object)
Cleanup and commenting
Add some default options
Add some more default options
Add singleton trait
Add singleton trait