Dev abstract models

We should make it abstract, so once we add a new type of statement we will know that we have to think about this function