The main result of this paper is a generic composition theorem for low-error two-query probabilistically checkable proofs (PCPs). Prior to this work, composition of PCPs was well understood only in the constant error regime. Existing composition methods in the low-error regime were nonmodular (i.e., very much tailored to the specific PCPs that were being composed), resulting in complicated constructions of PCPs. Furthermore, until recently, composition in the low-error regime suffered from incurring an extra "consistency" query, resulting in PCPs that are not "two-query" and hence, much less useful for hardness-of-approximation reductions. In a recent breakthrough, Moshkovitz and Raz (Proceedings of the 49th IEEE Symposium on Foundations of Computer Science (FOCS), 2008) [J. ACM, 57 (2010)] constructed almost linear-sized low-error 2-query PCPs for every language in NP. Indeed, the main technical component of their construction is a novel composition of certain specific PCPs. We generalize and abstract their composition method, thereby giving a modular and simpler proof of their result. To facilitate the modular composition, we introduce a new variant of PCP, which we call a decodable PCP (dPCP). A dPCP is an encoding of an NP witness that is both locally checkable and locally decodable. The dPCP verifier, in addition to verifying the validity of the given proof like a standard PCP verifier, also locally decodes the original NP witness. Our composition is generic in the sense that it works regardless of the way the component PCPs are constructed.