ControlsRefactoring(not finished)