refactored VC