skeleton of component