Need to refactor to remove some naïve design decisions.
Need to refactor to remove some naïve design decisions.