um delete function and refactor controller 20%