Re Implmentation of work done by Brian Advent