Joe

Merging Joe's branch into the master code, merging all code to start from a good point