Moved Submission implementation to the library