adapt to new interface