initialize(self,
deposit_class,
inventory,
**kwargs)

Has to be called every time a componentholder is created. This is not
in __init__() because we need to make sure that all other sub/parent
classes have been inited, for example the ConcreteObject class. This is
to ensure that all member variables of sub/parent classes are correctly
set when we init the components. If someday all code is moved to
components, this will not be necessary any more.