Allow component functions to be anything that satisfies ifn?