use trait to save last message