extracted generic vcbuilder