new way to construct SpObject