finish draft of submission refactor