fix a memory leak: forget to call autorelease