Initial split into cffi and non-cffi parts.