use builders for immutable messages