giant refactor half way done
returning not vd'ing
fix merge c