added full student control (UNTESTED) and added constants to the library