adding the great algorithm
adding the great algorithm
needs more sofisticated merge