Stage 1 Demo: Mostly complete, requires code tidy