visitor pattern and stub for composite and visitor