begin model class
Constructor overloading
added more changes
added two subclasses