abstract models