More convinient and More compatiable to inherit by subclass