1. The MC and MD codes basically implement the GUI in the same way, as will any subsequent codes. Therefore I think it will be a good idea to abstract as much of this as possible in order to eliminate a lot of the redundant coding. Future codes will import a package called "physics_demos" which will include abstract classes for the basic code and the canvas. Specific demos will implement this class and will be required to override the run method. The PhyCanvas method will extend canvas and will also have a method (plotter()) that must be overridden. Plotter() will be called by the paint method. 2. The workhorse sections of the code (Monte() for example) are good subjects for being written in native code (namely C or Fortran). This would be interesting to implement. 3. Another demo: the gravitational problem. User would implement the number and size of each of the objects in the solar system. Perhaps even ask the user to implement a "sun" first, or even multiple "suns" which will be yellow circles. The user can then imput the number of planets and can place them initially by pointing and clicking with the mouse. After everything has been given initial positions and velocities, the system is evolved with MD. At each step the positions are shifted so that the center of mass is the center of the window frame.