decorator - composite