Added Model abstract class