call decorate if source respond to decorate

this work for collections that don't implement decorate and work with STI