New function abstract model!