do lots of changes for model

do lots of changes