written some visitor pattern and single/double dispatch
changed sourcecode listing from c to c++