better reflection code