breakout the cc component subclasses into individual files. document behavior. write tests