concrete class and abstract class finished,3rd attempt