Refactor application of type decorators into an object

Also since it is always a empty hash should not we remove the argument?