Change to using annotation macros