A few bugs to work out but works fairly well.

98,445