refactored to remove _update private method --KW