pre-massive OO design changes