Added UML diagram and very small amount of comments.