virtual programming