Renamed to AbstractInventory to signify that's it should be subclassed before proper use.