implement better signal logic; add max rate to output