Revert "Revert "Interface""

This reverts commit 8c9a5773e2ce5b88b99890f4d7793d0b3fac176a.