conform to new interface