A bunch of new changes, but this is a demo so it's not really worth checking in changes since it's likely broken anyway.