I know that you're going to hate me but I fail to see why we need this interface (and some other ones).