added algorothms