refactor after initial commit