minimal MV framework