Just throwing around ideas for ways to refactor into a more decoupled base