Refactored catalogs, moved implementations into separate folders.