school work, most of this is probably broken