first refeactoring