This paper presents a simple and efficient building block, called slide, for constructing communication protocols in dynamic networks whose topology frequently changes. We employ slide to derive (1) an end-to-end communication protocol with optimal amortized message complexity, and (2) a general method to efficiently and systematically combine dynamic and static algorithms. (Dynamic algorithms are designed for dynamic networks, and static algorithms work in networks with stable topology.) The new end-to-end communication protocol has amortized message communication complexity O(n) (assuming that the sender is allowed to gather enough data items before transmitting them to the receiver), where n is the total number of nodes in the network (the previous best bound was O(m), where m is the total number of links in the network). This protocol also has bit communication complexity O(nD), where D is the data item size in bits (assuming data items are large enough; i.e., for D = Ω(nm log n)). In addition we give, as a byproduct, an end-to-end communication protocol using O(n2m) messages per data item, which is considerably simpler than other protocols known to us (the best known end-to-end protocol has message complexity O(nm)[AG91]). The protocols above combine in an interesting way several ideas: the information dispersal algorithm of Rabin [Rab89], the majority insight of [AFWZ88, AAF+], and the slide protocol. The second application of slide develops a systematic mechanism to combine a dynamic algorithm with a static algorithm for the same problem, such that the combined algorithm automatically adjusts its communication complexity to the network conditions. That is, the combined algorithm solves the problem in a dynamic network, and if the network stabilizes for a long enough period of time then the algorithm's communication complexity matches that of the static algorithm. This approach has been first introduced in [AM88] in the context of topology update algorithms.