added in updated class diagram, thanks micheal