adding some reflection and annotation processing