reflection and annotations to get rid of queries