you can extract this out into the item model