#157 refactoring model step 2 & 3,  introducing decorators and decorator for new collection or map