clean up how the cipher set backend is implemented and typed, start to make a local_t