improvements: id should be updated immediately
when model first saved.