Rearranging for readability.
Allow for message promotion (note: needs permission check in Compose.pm)
Documentation and restructuring.