refactoring and brainstorming progress