I haven't tried to follow this code, but others may find this interesting:   more »