implement basic catalog functionality