abstract model ok