updates loads of stuff