annotation processor more generic not just for router