add more implements for model