2 possible ways to handle messages