I don't see the point of an interface here either, seems overcomplicated to me.