Added inheritance and compisition