Added a bunch of new features around c_string interop