Classes refactored, documentation updated, class diagram added