more algo implementaitons