Thanks of @unitpoint's help, it now works and is fixed and works without an extra retain.