upgraded immutable version