Substantial reworking of submission, addition of some basic caching