refactoring of de