Add generic types into Visitor