implement basic catalog store