Covergroup in monitor

function new…
super…
m = new();
endf…

task run_phase…
m.sample();
endtask

covergroup m(virtual m_intf vif) @(posedge vif.vdata_val);
option.per_instance = 1;

m_vdata_val : coverpoint vif.vdata_val
  {
   // bins val1  = {0};
    bins val2  = {1};
  }


endgroup

ERROR in m=new()
task/function call or property /sequence instance does not specify all required formal arguments
ERROR in covergroup
formal argument ‘vif is missing in the task /function call or sequence/property instance identified by the previous error message.’