Slico rebase

Supersedes #833 : I made some changes based on the feedback I got, and rebased to the current master. I wasn't sure if it was safe to rebase an old pull request, so I'm opening a new one.

And sorry about the long delay!