fixed up a bunch of stuff and added working story; semantics are still quite borked