a class diagram and lots of code