Exploring the beauty of java reflection & annotation