implement catalog model