a further elabouration on this algorithm which seems imperfect at first