add two structures for catelog