defining classes you might try help(projectileto see how the complete documentation looks for this module working with multiple modules our main program can now simply import from the projectile module in order to solve the original problem cball py from projectile import projectile def getinputs() eval(input("enter the launch angle (in degrees)") eval(input("enter the initial velocity (in meters/sec)") eval(input("enter the initial height (in meters)") eval(input("enter the time interval between position calculations")return , , , def main()anglevelh time getinputs(cball projectile(anglevelh while cball gety(> cball update(timeprint("\ndistance traveled{ : fmeters format(cball getx())in this versiondetails of projectile motion are now hidden in the projectile module file if you are testing multi-module python projects interactively ( good thing to do)you need to be aware of subtlety in the python module importing mechanism when python first imports given moduleit creates module object that contains all of the things defined in the module (technicallythis is called namespaceif module imports successfully (it has no syntax errors)subsequent imports do not reload the modulethey just create additional references to the existing module object even if module has been changed (its source file editedre-importing it into an ongoing interactive session will not get you an updated version it is possible to interactively replace module object using the function reload(in the imp module of the standard library (consult the python documentation for detailsbut often this won' give you the results you want that' because reloading module doesn' change the values of any identifiers in the current session that already refer to objects from the old version of the module in factit' pretty easy to create situation where objects from both the old and new version of module are active at the same timewhich is confusing to say the least the simplest way to avoid this confusion is to make sure you start new interactive session for testing each time any of the modules involved in your tests is modified that way you are guaranteed to get fresh (updatedimport of all the modules that you are using