finish rewrite to PastSignal