Massive Surface refactor. Now depends on Chronicle.OT.