all the logic is in place for cs1a and it compiles, but completely untested