this doesn't work yet, but I am pushing it to github so I can mess around.