Refactor application of type decorators into an object

Opps, just saw we create a new object on `merge`