Initial refactoring to allow for renaming