refactor to remove need for reflexive calls