Add some asserts
Rework gopherized messages
Use designated initializers
Use underscores in filenames

An effort to increase readability of this code.
Free string buffer in error case
Unifiy error messaging