May want to have a simple function that returns a new `CatalogItem` with everything filled in, rather than call this complex constructor repeatedly.