refactor/reflection