Use abstract model instead of normal model