Refactor user cntroller