adding detailed class diagram