In Factory's comment there is something( "any use of lhs or rhs after calling this method is highly discouraged") shows I need to create a new obj each time.