add Message.build
use Message.build instead of .new
Message.new: keep raw as the sole argument
refactor Message.new
refactor Message.build