refactored reflection