Revert "This might as well be an interface."

This reverts commit ce2bfb99ac7223903bf4ada8f90ad4f963e19c2f.
Revert "This might as well be an interface."

This reverts commit 54fa7fc8beb29a283878324c2fa6979df001d46b.