Revert "Revert "inerface 2.0""

This reverts commit d9837d1ac9237863ae7d216f0dc9a31dd2147880.