It's currently impossible to set extra data by doing something like the following:
self.storage.extra_data['foo'] = 'bar'
It's because the extra_data getter property will always return an 'anonymous' dict instance if the extra_data dict is empty.
This commit should fix that problem.
Don't return an anonymous dict when accessing extra_data