Personnaly, I've gone through 3 steps:
- layer mixing (where presentation/domain/database etc...) is mixed.
- then "overlayering" creating unecessary layers just to split things(concerns) but ending coping values from one object/layer to an other without doing anything more and having multiple objects with no behavior.
- refactoring this "overlayering" model to a minimum subset of classes and hading behavior.
The problem with this approach is to prevent other people (just as myself 4 years ago) to put things in the domain objects where they do not belong.