message handlers optimisation