refactor VADD for easier testing