strat: start using listener and message classes, now that they're more fleshed out