Refactor to async-submit package