chain; flatten revisited; "of"

the only way around that is to check by hand and not use `checkForMethod` i suppose