keep refactoring code