What's the correct definition of Decentralized Applications? Some, like https://dappsforbeginners.wordpress.com/tutorials/your-first-dapp points the two layer architecture (web/front layer and the ledger), but others (http://cdn.oreillystatic.com/oreilly/booksamplers/9781491924549_sampler.pdf) focus on 4 main features (open source, internal cryptocurrency, consensus and no central point of failure). May I say a true Dapp is a two layer app (frontend + ledger) following all the four principles?