modularize components