Need a way to easily encapsulate a user module so that it runs asynchronously and doesn't block. 