Essentially re-written the engine because on developing a set of unit tests it emerged that a number of things were quite seriously wrong.