Add demos

added one demo and ended up fixing a lot of separate issues. not a good feature branch name, in retrospect.