Version 0.5.5: Added comments, organised UML, ready to hand in.