account refactoring