Modified retain() to return this