In general the choice to use interface{} in many methods makes it hard for others to understand what exactly should be used here. The heavy use of interface{} should be refactored to use pre defined library structs.
This will be api breaking and results in a major version update