setup as a component