All working, with minor bugs, but working!