abstratc Model