component: extract components to another file