Add a Visitor Pattern and a common test for it.