moved miv to its own class