added color change per component and control user behavior so that they can't create malformed tags