class design work in progress...