provide support for visitor pattern
Merge pull request #18 from bdkearns/visitor

Support visitor pattern, no impact on existing code I believe