updating controller with fixes and input methods