rewrote command sender. still needs some tailoring