Loads of changes, stuff actually works now