add composite design patter