add virtual C