Added all fuctionally required