refactoring with adu