#3 lotsa refactoring and working out how to mock doc create classes