some improvements in docs and interfaces.
BREAKING CHANGE - IWithIdx/Idx replaced with IWithIndex/Index