add message lifecycle stuff