refactoring... breaking things along the way.