add factorial (iterative)
add current-slice function