mostly done with definitions of functions and modules and halfway done with inputs