Derived contract must override function "supportsInterface"

FYI this is incorrect! See the followup below