adding general input output predecessor