Let's see if we can make something work with a component system.