require module asynchronously, cleanup