component, composite, and leaf classes, v1