partially implemented visitor