feat(collections): support models