I've adopted this from Eduardo with his approval. An early version should be on p.d.o/~younie in a few days.