implove error message. free nil check