added composite pattern example