annotation based config