Changed composite to use a templated constructor