variuos necessary changes