Added a preliminary, Class based design for the software