perfect model/view
Revert "perfect model/view"

This reverts commit e14f91ed66ae04f1196305840a32518c24319e93.
Revert "Revert "perfect model/view""

This reverts commit dc4a7587c5e4021f3aec22c4e7e4c81d0763fb75.