implemented data join