Add (far better) module running support.
No longer runs automatically when running as a module, must call .start()