refactoring
implemented adel