Loads of changes in register etc