single inhertiance implemented