My only comment about this is that the return type is actually quite simple and we should be more strict: `{ok, #state{}} | {error, term()}`. Bare `term()` isn't very useful and would allow breaking changes through.