update SystemObjectFactory
abstract inventory to itemcontainer