WIP: Refatoring with Algorithm::Combinatorics