I've started work on this class (actually, I'm almost finished it, I just need to test it properly), just in case anyone else was thinking about doing it. iain