Commited version from live-coding session at PHASE 16-Sep-2014