Wow, that worked.
Working-ish framework
Just need to work on routing