refactor VC