Big refactoring into ASubmittable and ISubmitter