a MV* framework you could understand in a moment