Cell junctions allow communication between cells and attachment to the extracellular matrix. There are several types of cell junctions: tight junctions join adjacent cells tightly to form a waterproof seal, especially in epithelial tissues; gap junctions allow small molecules and ions to pass between cells rapidly; and desmosomes connect cells laterally through cadherin proteins to keep neighboring cells together, found especially in heart, intestine, and skin cells. Hemidesmosomes attach cells to the extracellular matrix through integrin proteins in the basal layer of skin.