Do validations up front.
Pass the session through
restructure edit method
more method restructuring
Reorg user create and update actions.
Use current session.
use transaction