class decorator