Messing around, trying to mold a better API
More messing around
Added demos

pretty much a rewrite although a lot of stuff came out looking about
the same way
Split out files and some renames
fiddling around
Merge remote-tracking branch 'origin/Messing-around'