annotation processor draft