Updated buttonController, added more documentation.