while correct algorithmically it's very hard to grasp for newcomers. The easiest is to hide it behind a more user-friendly one.