support start input, pass last output to transfer function and support set.first()