some more stuff, somewhat slickier design