vendor and visitor class definitions added