playing around with a component system