Returning ifaces in same package

As it broke too many tests in Nx.

TODO: we should consider porting behaviours
from Nx back to here, to make the reusable.