Looks like it will be leaking a reference to self on error.