DemoDemo

so this is my first slog at taking the logic and making it a bit more
reusable. Kinda drunk so it's not pretty, but the basic logic is
starting to form.