Completed refactor and reflection