make data merge recursive (followup in #594)