refactoring ecart methods