Cffi

This version moves each backend into its own file.