Minor refactoring, Class Diagram added.