Nice one - again this was the subject of lots of re-factoring... :-P