for the parameters order:
* let's start with `position` (previously index) first
* let's put the callback at the end