refact AbsModel