First Commit. Working prototype in need of the visitor pattern