start fixing up interface/internals
note about likely approach improvement
much better!
provide defaults when writing unspecified values
handle NUL-terminating for short char strings