TODO: catalog data struct