no need to use reflection anymore