Invoke `retain` then invoke `autorelease`, i think these two functions can be removed.