These instances are not initialized until someone first adds or removes a product. The last added item is the first item to be removed. This prevents cases were you could insert half-eaten chocolate and get back a full bar, for example.