does this really need to be a component?