return error properly, and auto release 0.0.9