We should do proper parameter mapping everywhere
Slightly less code
Allow attributes to have different names from json parameters
Generalise json to parameter mapping
More refactoring
Extract method
Move method to base class