predic object dm design dsgr problem problem model facad dm collect col model core helper realiz interfac dm set set hash set set add col set size col size problem problem problem 