Am pleased these changes make the autogenned implementations so much easier to write too :)