um delete function and refactor controller 30%