some modification on model
finish model