refactor models

refactor models, and update collection logics