implementing macro annotations