new files for the virtual function branch