Start of re-write.