Reorganised the code into a more sensible folder struture and added files for testing /demos