Revert "Revert pull req #36, #37, #38"

This reverts commit 5df4e165214750f25776545389a3cccc0368f615.
Merge branch 'pluggable-backends-and-helpers'