some description of algorithm