Refactor catalog package

 * Unexport internal structures
 * Add new access methods
 * Add mutexes