make params serialization correct, simplify client USER method, remove some cruft, make parsing of messages from users with underscores in their names work
use lazy vals because we don't need to recalc these values every call
Move to matchers for easy messages