implemented data exchange