changed opencl a bit to pass around the context
added simulation, cruft intact
removed cruft (its a word :D)