code and algorithms 2598320