Merge pull request #160 from jrperritt/cf-refactor

Cf refactor.

I'm making a command decision to merge this PR.  It's baked long enough, and people are wanting to use it.  The only issues were documentation related (if memory serves), which is not going to break the success of the project.  We'll just have to chalk it up to technical debt and move on.