Add async module for dev
Add deferred.resolve
Add extra checks
Add enabled flag and defer for start
Add enabled flag and defer for listen
Change the main control flow