added inheritance model : D