added missing virtual keyword