decorate if source respond to decorate
decorate with decorator_class if it present