WIP reflect refactor