implement user controls