restructure decorator generators to make them easier to modify

the new ones compile