Restructured semantics
Merge branch 'master' into martyn82
Program file open/save and window changes
Better file reading, erased todo
Updated todo
Rename to reflect source
Merge branch 'master' into martyn82