* obj may be nil