Split ApplyController to single responsibility