read msg function