Extended model and beautified the diagrams
Further refactoring