add optimization for V