"virtual function" edit