Ok, I'm interested in this and don't have the time to work on it, so I'm going to try invoking the mystical power of the LazyWeb to get it done: