adds submit() and its private dependencies