handle private messages by replying privately

this makes code nastier, should revisit