the new interface