some modernisation of code, mainly involving removal of @synthesize and using default property names