don't quite know how this works, but here's a start.