A very rough stab at v0.1, but it works