split out signals to signal router consumer etc, add position keeping