refactoring and consolidating.