refactor user controller and contact model logic