supports() should not depend on type alone I guess