Make it work (sort of).  Still a bunch of logic bugs left