why virtual?