contains diffrent types of  algorithems