let the three impls do the same