modified component.h