add constructor for vo