recurse for messages