new style decorator