created IView interface and let abstractview implement this