refactoring message public, builder interface