added basic model abstract