roughing out upgrades OO design