more mvc, less bad smells