Began refactoring to a new class hierarchy