added private methods for create and save to interact directly with the odm