seperated demo, merged nigels changes