#3 refactoring after talking w josh and hao