added virtual initialization functions