@danielearwicker: Don't interfaces exist to validate their proper signature in implementations?
What's a point in occasional implementation of an interface by matching it's signature? Did I actually want to implement the interface, or I just get a "lucky" strike? What happen if I rename/refactor my method? Will somebody tell me that I break an interface?