finish refactoring blob, get rid of all usages of the api module
tweak error implementation, so we keep string pointer types consistent
refactor branch
update commit, allow runtests to run all tests
refactor commit, no direct test coverage so this need to be double checked