better classes, but no inheritance yet