modulize, and add image component