refactor user form