create does a save, so you are saving twice in this method.  Is that required? It will make the system a lot slower.  Can you replace it with 'new'?