Building a TodoList in Javascript - Part 2/n 
Tags: dml, javascript
Published: 2021-08-09 14:21:52

Welcome to 2nd part of this tutorial. We know now from the previous post how tu use **make** function.

Don't forget to read the doc on the official site : 
[DML](https://efpage.de/DML/DML_homepage/index.html), and read how the vast majority of the most used functions are implemented.

So, until now, our newly created elements were directly appended to the body of the page.

The question is now, how to append to a particular 'div' or **base point** ?

DML provides a convenient function to accomplish this. This function is called : **selectBase**

Here is what the doc says about it:

**selectBase()** is the most important function in DML. It controls the position of the basepoint, where new elements are append to the DOM.

```js
function selectBase(parent);   // Select a position to append the following objects
function unselectBase();       // Release position to the previous context
DMLgetSP()                     // read the current stack position (for code checks)
```
You can see from the code above that **selectBase()** works in tandem with **unselectBase()** (our third function), which permits to return to previous base point.

Nice, we have now our three functions at our disposal : **make**, **selectBase**, **unselectBase**.

Here a demo [DemoSelect](https://flems.io/#0=N4IgtglgJlA2CmIBcA2AjAOgEwFYA0IAzgMYBOA9rLMgNoAMedAugQGYQKG2gB2AhmERIQGABYAXMNQLFyPcfHnIQIAL55eAoSChSMAKy4y5CpcIBufUgAIA+gCM+heHgdP4AZXF9iAawC8NCwOsOR+-gCEaK5ypPCEEABe8ACiCILyhIFMANyyPITi1oTmAOZxrP4AOiAS4gAOSAD0TQDu7RitAMwY5KSlTVh0w00lpTV4AAoAklj+WABUALJ84qIYM66FAJ4I1UTiu-ATDpRQ+6wmALSt8BClEkjW9mc5JxDesBDEF9c7CE8PnwvsQ3iBXKwsjVLvIrglkk8TvZ7goAB7iX6w+HwJ5oLp0ACkYNc9lK+0cfnK5AArjwoFdZKFSIjwQ5yvBzjUKb4qbT6Yy+k84lBiWzhXMuT4eRQ+QzKILrABiVg4Oii0nbclS3l0uVMp7K1igpGldmKLWUmW6gXMpUoACcOHVpXssGp8At0pp1vlttd7udfT4PFKHsllu9-N9BqNapNCVg5ngpE9Oqj+uKHCTpGd23gVHIrVTVvTCsNrFY8Hgztaog+YZA3LTeoVtfrztdUuLkZbftgUud4lIwahje1Jd7QpdfAAFAx54wMHQcABKGtDkfd2U2qeOGe4fAHvBHugYVei4X7HfWYXqt0N6-+6snfjmTU1a+v7aitsKK-R6xf2fVk8wLIsPwA0DQlaUViEUBQUxqNFxCuYF7h4J44PkZML3uCR9mQ1CvlKDCbzw8RRXEch6n2bNxG+YEiPQp4qPqdVyHEKiwFo5N6OIRi0JIp4Xk48gwFFSAYD2Go6IY2AmKE6xJLgYCIQQVFlOknQIEIep+22J5WHUnJrEEngrnrMBCEw+CcKRN1EJAdhYAQ4SHP3epUTXE5CFEPgoELclyFROE-IC1oni6TzrCi1FrAAFmi8o+G-JF7l8-zAq5YLQsyiLrBQaLCrigAOJLh1S1lCDAYFYA8MKssbHKMvCp4sGi9q4ti6xksq1xxHReq8oI+B0Vy1rrBwIrosSuKb2nOdGCW094vi7zWWRUoABVBoa8CQEIlrCyeMq4rxaKprm-o9wXecMFW9aST6KBkyC0gXttNYIB4YpKGgTNEzs1keHIF53te7LwdtOhPIvfyIGpUcwY+q5hygBHrOsU6JO+iAACV4cRt6UbRjGnku0V6n89GQ32KmYG+0o2thk4Gmpxm6fZkNcQu6K0F51F1XuSYubJGp6ZppnrDQGHBZ8mqqBWfpvv2GrldIzqJKsUoVZqNWddIimTn176ABl4FYDE9e176rgQS3yZZ1kTZ4PHyNVm3zNIcjHbljb7iVg3zctj31bti3xFxWWhdKQPvrdh4rfAT3UZ96Xo-eHghvC-YbngexfA+K4XhCo78u+5wikuybou6q5Ovmm7lsXFA1pyK4wHIRJi+avbAQKeAq4FmLovr6LrtnW6W7bkvxuO6wK8Hmu4uruuG4nxbbowVvHtOVF-DZICAGpTihk+y9cbYS4P5Hk3PvaT9JI+akNY0NvIKBtgAMXU-Z0d0-ShljLWCMqNK4Rl54UFaNYEGrRhxsWsPoRG9FWDbDlNheQTxdI+HgMXQetxFCigSC9H+o0LjqVCt7HgvgninidCcRk1IwA8FIfvaEFCqT5TVNYf+ekUpANGiZEBFCIH5SgTAws8DRSgLYdpAB-DhGCJODIjwVM4IAEESx-x0nwgyijBaIOQRAVB6DTCR2KGo3BVhIzSPUqonBAAhfBVYeDaPkXomRJkkGFGMWg-IZisGWNQiWIhfFfDvhAPUcgCR6JyCeHnAuRcfF+G-NYKJMSIBxOKGE1JrFaFOxJOIAohwtKtGgGsKO0drCiDuInNqs0hG8MAQvHgXweC4M8aZYi5lLKYywghLxRiTH+PgjZbCOYlKexOgU2wRkr7BTptEj4mTSLsFRByHIEtGZPGKjkWeZdfbLwKtFBM2Y9nPWTKjQmmNsZNgnNecsFZWDnKhixOsP1CB-SgD1CqOR7bmNVESPJk1CQ5A3AUS4pAwAsWHAUfsCgZxXEBXgawSLCTrT+UvWw-YQzUj4KGfwap8iFB4R6Bg5poisBTFgTFRQcWlDxaGLINAagvQmDURQ7KnKkBqLkVgtJiCxJ+qGcQptgwMvxfAGc4gVzAHEBgKiptCzJgAMLuGlSuDAhBqT2EKKQGc0QsBrkhTOBARR4AtOsPSxl8QVzGOlQq8gSrbikDVc4DV-h-DWslYQGg8AmArjiOIakpAfrYvFTa-w8BVD8p4IKlZ1hTbSrwC4Hgsqg0hp+poiqGAdLZpShqgA-OIGg4bcWSqYEgNAnqy0StDAAMnrfAQtOI5gH29Q2+tPBC0YXEDGgVQrTLUiosiOkGrgBmusB6AA8vYfQ8BBUYBFZMCgVFDj1HgNO1gGq8CuNnfOxdIrp2tB4Cu6ivFtgADktCEBnPAY1fRTVLwgNYcgrAYGyuhAOlZNRPXrvgG+qdNAIBMEbRBYppBqSCr6DUCInqICNulcBpgUbkMYFHVADVK5VD9rjYO-iVBk0YGI-e4A9qigV28HGgD76v7frkIGwembrDiBnMRjA97cPxrkHYCAYAomkFY+IFNn6DhUPGCAP92wN2AfEIhjENBxABtpTA-w8qEAhjWDkE1L7vosdlZOlMo0NyCq-hwRQWgkMgc1XEPhcEZw1AwFy2wNQ1z2vMOQf6dBPX+DKXSQsNBSABuAH58KgWUM5kneQfwAViBMPghgMg8BVipHSPBBzRAyAQHqOIVzORyBatID8EtIG8AFbkKEfy-gZwzhXP4AAfMAbz-grhXB4I2+AHXauqBXHgWL8X5BiGS1ADAfB6gbrpCqussBMPkGw-mZwC9t33ozaG6wHn-pSuw6oKoPBY3cZ+pVqAKqPAeGTam0TiMLV6u+LlkAORLA2AgL5764UMD9YyPKpLKW0jwE+xltpvhXN4CMwAH1B6Fws72wgDflSK37n3CAOO2FtfF17BAZZIN7HLrn6C5AgBgOIsB9j-HiDUweEwCeiAqGpvABPBDoz4PsCr2xrCogmKQDAVM4jyEvR-eAuaB6CacZCqVEAQe9crltPjAHh0zn20K2rZGMAM4gEzng4Oai1RqD1rjg7SfnYM0vVxwBVA5FWz9ZtGXQYHru1JmT77xCFpnK4mVWqSkehxNbudC67dqekzRqdiHXH3t3e7o4anetpqQC78PexhNpr1wm4zw5BXnd3bKhXCaIDjotyx1QhmyvZDwFkKIOR7XtfrTOLI+bti5sILXl3K5es1Bt7739-uHdTtlfa-dvuMC+HgNsW996MAadKGserdAjd0v8H3xdg-h93t60z+f8rLD3hH71n4EQ1R5-lZClIPhRDy-ozwcdO+1QmsnWSnI8AAA8sAx+KAn6IO-R8j4rhLbAP1TAmBwb4F-0Qx3zQDc23WIDtW3TTQnSXg9FN3L23UIBXGvyXnIEtWgMnSyB4BoHIFyBTBLUIBYHgBoEIP8Bz1IHm1gEWw9HILUxoB4GUwK3qERhP04wWwtSYJYI1R6zK1UH3wwEP2P1PzwxWXHQrxnynX8HgPtSQJQKKDQL0wwKXiwJwLwLoMIJTRIJQ3IMoOoLIJnHwPoMYK5y4LYKoI4JMN8m4N63IBjUfUnR+j0xlUsjoIYLK0sJP0sl-zXDz1sKzx43YHEA8HzF90fWE1Iwr2pCoD-UY2DVDQQJdyiOJyjViMzRUxN3UGezXwHyH1vRlRBznx9wX1yOX203sNgMtQgAkOiwgF-3N0F2IDdBelvTm2D1ULoNwOwzzx4CTx4xTx8HEDMyExTQz2ADz36LT2E0COCIQGg31RcBLWYCj2w38J+n0E8x4GnWzENzI23QiBWyYzWwontQiBlXGLyDkBJT3SKPlUXy3zKP1UnV0x+iUKKBTGwJAzBXC1QyCz4MOJ+j7VWLSSDUOHHRv38AACkPBp1L13dxNfFk0eAki8A1pd19hKd9hrAOdCUHin0igKNLdqjUMlMwQWVJN-ByBEMUxQC8BeVTdHNvpGjqRmiZxWiq8Uxp88Bq1-BSBncagqhdtYMKSwMQABSeUQA4NKT60agsSJThSq8eAj4KTetns5skBFSKS-i4iXjeifpqYV0pUZUxj-iah796g4h6sagj5zTB5QSZVn4QB78mgbTLS1AgSSxztCV01-ilJ-AVg1gudCwDVyVet-T1gPTxAFgwAVwmgwBdSWNIM41c8fSwyFVEziBuCgSIEwjvTtTrBUzsz9UZV4y+BdVky8zUzSy8iViz8p1UR6gZZyzmNUyolWhgy8BiygTQhShGyjS89UzuzeyayRCeN45xVDSRjoCLcIhpV7971G0ZzxB6tE8gTiUNxvp08pyfTxA5yW0kAlzu1e14zIBz9wjczmzVh1gTzDdjy+BUQdj+zLyVc7ybygSRUlgNyzzjS8yPRL0mF7Bkxl8OzC1UzryzykBo03zB4Vh7yvzxj-A-ywAAL5jesndQKXzwLILayolvphjSMLdgBUR9y8ADJo14zPImzQ0agbsQwO9-1ZNi0kBUyIyVwHTPIdcoKGhYLzyqKxNGY6KA8GLpU1NCd4A7MpVxZ2dwR+SQBNUhw+Nas8BELkKsN9ySzSAKoN93RNyeKfoNtvlms6D-Ue19zf94zqpyAOIT8+ztz786BC06B9z6s0BC00B9yFhIyZwugrgUJOzayLKrKsBKKAS7KHKnKXK3KdyzxC1FhIzI40B64FhhKEqZUPL4yJjBjzN+AMcbK8z5VGSmj4gMsBSSrZLi0tUdUaLSgHV+xChpg6RRot1iqSrXMj5QD9yKrdV5KQwaqnBxB6qXpUQmqagmhWrQD4yXoXgBUJyLtgBHsF5zcfTVild5r8C6xCAi9tZYcNqsCFyIA8gEArBpdBAaRWMqi6d-ApcZdTrhCDsldnskSqBd1wd5Uxs9JtgDCytsMRMS9G1XrxtYAPrSAvqcMgSdItoaRiBRAAAReAcwb4Lbb8zNVveQSG0QQoKwO7PTSHVocHV8e4VYPoZ81ECGqDUQSYDY8QQgKfPGvgeG0oQmznKyGC0mqGim3C6mugeMnSJYUGczWG+G+zXSmBOmgmqiTnK7UgdRUMQbV7Rq7dGoXm5EBAVzKfeM2wXGPC4W-S6wQyp3HEQE-yweadHLFZPIyciQrIm4nIpfNNXEwzSook2ooLB7TzAyuDVDXA4tdo4g3A0y3A-wbA3A0G2sqAYcUoBHdLcIyIafGAooHgOnEHMrEvQO5E4nKIPAJnBgH4NUE4g4vK0SzuJMFIJMeQU2HSUwQCpCNGjGwTCYakXrHW+VOIIu1IUu0VCuxQKu8AGkZwcKHgeu41Ws6kZfYAT3cHHGjjdujsz1AXbwfoQeRDAXN9SEQeAATXq1wHBwyyojJtrr9yjQVQD2dyM0dTJviDx0Sy+HggAA1UIi8560aL7mAr6IB4I16GQVwY9T7Gi375A76+AH7X737P68B06GAPsEtqYS74Jy7Cgu79Vq7z66QJhRA8AohetIHBtoH264HK7EGDo0bW6JhWB0GaSsHXqYAYGy7O72kCHO4rtqR6hUGyHMGYdPtRsqHcHaHu6GHnBiHwRSGMG+t2GEsXhP448Bc4tSBPlHIBHm94zrL01A6i9xd07ogKHC7yBi7uH4G6Gd6n6UHwQ0HhHNGW7tG27YGeGCHd6oaBG8AhHyHRHBtzGdGrG9HeHe74AmGWHTHnHm6-sLHqGO6PH6GvH7HHG2G4sOHxG69SdEsQ1ZG-4LY+Aoi7t4zlsDMl6uc4h27YbWBUmXJFKkG7GLGO9D7-1ncQ8z6obn6mBgH-7UYLrH7z7fUX7f6QG1SXdD6OnGngbnspHr75AP65tM6VGfhxdlrwjRieBJG0yRxIVuIkJYVCB4V4AuhMMrTxA2LUQUUrT4AdmUVp8dcXdE78jCBG0CNYBq8FH+CcH3H8GDG97567s8BqRWGOzOGoBgm8GEGMs+GORCwB7wR3nhGvpCBzKQjBUHF1VcrmM3BnAvApQPCZwEXQ80WkW-Bn9NNRBnLhhENgReIMtoalhTYp0NKFQMXvA-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-YX0OB6ap4mOovUQqJVLc0eAk-GYr7lEmwd8hf7UMWyLp4Vikus4r9l8xNpCpqyu6CMSdwVYcgBqZCEHjD1rK1M-AJcbSftXIwikhSRpS0f4Aj41Bpgl6SYAAFUtooYuSgHivCXtfAJcNgbhIwkjFru7BXyVYMCkhSwp4Ie9BFI3RRSF0MU4KGwKklzMWJ7sdiexU4nFTPYvE-YPxKx4E4XJg+c4I5LUmT9sxeFKQj1g7YvF4A0CDWupOHRtSbynnUlm1M0TJZuR5pDiBxADzHiDxHoZahISyHrUcgV1E6nLgWlyo5mI4pOFgE6gTAjuRwIbO7Ha5kBKAsAdzrUgkAGi1AXJb6sNNNiaTBUE01dNNI3RmTTalxfwFM1lQx9qIeRdarSTL4fTChxZPAPdMeniBnpU0-9DZN9zmSVkyOAAGrAh3QX0s-JgPNTsCbxPAhDutV6DAzRRxbe8Z-ntTZdwW+MiyUYQVTGYDeGCN3AVWZJFUaJeefStKjxnUQLJsMwVHZIar7xE8B1JwIQF4z9TxAbU4AGuUgxzFPSpuWVB6HWLfRaW+qYACJ3LEA8kAhfeKarPsDqzMiIsrWTrIcZv0ZsAAdQRFIAggIjBxFRxoS751AoecmfFNTpPVyZInS6j8KX4C4VZ04lvKKTlLxiHZpZfMIcLeEpox8gc2AFrJp4CEjZUAU2bqNEB455MeM+KdqIREqj7yAudgPmFjkIiW+R7cmd9En5+Se+NQQucOlkGC5J+kc0OVnJNm5y9uScnSJXOHSpz456cu9NHOzlxy1gu3ANKhTxkC8L+DEvGWXPyIQcW26qKOQFCtnJZfAjaFCR2RHkizF5Tc+KSvNFEidVAIqdbCjMRr74l5k-RMbvNUCVwd594cdAXJFlHz7wamEOiMJFnKVAKmEp4gUWkntJZJ+bUvt5IkKuI358AD+WeXqJDzLeieC3ClKmEgBR5VQ5vEfRyk1AkSSFZMBziAEUT2+Ak2slZFKAa9YKFtLCVp0UophXhfQsEQdGMwKRSI-SHCLyMhEgIIA6yEUFsm5jHJBY+yPuEcmrjFQAYZyI0VclNE3JYYdyHsA8ieRPIXkH0N5Hpk+RfBvkvUTFA7BBRApqI5MUFPaMWYwoRwLotFASBRRaK1wSkxEdYFwCyw8shkgHpWM+pi8osl1J4SWM+EasmRDI1vJsMKTFIjgmqBcSCACA1Y6sjWTnK4y2xWSu03WXrOPIeHuougmDcOmjwMK9Y32ogCtoa3Fx6xCAWCgqbJS9G1knAvgbBZuTpx-9-A+Cmwm7NBG+zAZhEMyGMgGRWlZkgNEuA6X0VtRVQ5UtcKYpnHkBkhmBaxW8NsWYj3UozRxSADXrxAkQRSUnO4rjSeLqstWBrMAAKz+LFKjhYpMGDgiAY6MD3RtOfmwy9YBlfOEZa4oQDjLf64QbxTMrmWBMkw23FpBjWoyrKz8jaHPFsreYDxIO6qCJX1iiUitWMozOJQks+rJLUlUlSXIZ2DCWBCAWAaGsFRgQ9S7A-EHgKCvBXcFGigsmFSCqcDgrxZlxc0VLKNJO55UfkQgMelPSx8L0GWeGgkFdDHBZK29dfDpAB57BAJ+5KQmSrpU4hbZnzZlRSuLR4zYVoK7CRlh5VOB9pX9cmQKqyD+SQAoqoVevMSwDQ1M3K1FaKJFS0yRJNQLAFAGBzkycKmQYvOTLLiEot5S8fRUazyryq4VTgToAiJPmGqERF801aCotVty+0287acauYwiqFVR0xOFaqKAuqcVdq81dtNvkAUDYIsNYErhFUDR0M8AENZeW6x6pyAwfWVBGtRBwkE1W2VQI0WSz6ok13KyNZmqsBbi08C4cmfoulXbTsMlccuu0i2gB5kqKackP2D8BVDsgomBBchUr4wJg8gQBgv3KbmCoU1qw7uaIFpzJrU1g+LwBHgWK5qU1lamSU4BPyJ5K4ZmKgBOoQDCUagQER1qOuch1QPct80+WXGEqx1yZtgPVcJidxsy+1kasuA4gciAcMAXQDytKv7Vao9oBvJkAKIWhTw6Eno0dWXC3Sr1xAN9EddOtfV5QANlcNepHn3Kgay476voE6JHDc54IOubeYeuFonqy4BeM4bkqqJypQNwa76KGpPy9rRRL61uhDUNzPrI1qwyjb11I0yqZ1Q4NNd1mxQ4b-ReS-DVepTUUbyAVG0dbRr430a-ikxScjSI6mypK48My4peo2rA1gAO6pABnUoXMgM64qAEFzQY0vrCNp6WNb1joB9s8Z6mq3H+rpoBLR19ol0WeWo0prV0KWWTaNhDAIBlgT5GYE0DQAlROSIq2yLyVHVxA08bWQYHgAshBb6NMG7jaJSLVLR6NNm0SoUD6BbZhV3KnzVyoi3+ahMgWrACmhC1ZawtfmrSRxvOrkyd1f1UDTusUp-rmNia2jultw0FEZZwAKTQTNk1J0FNHAWAEpuiAqbOtmdJzTiE02MBDNTc4zc7lM0XKtNkayzfZus1+aOI02ozX1pc0Bk3NHmrzclvGSpayNka2rZluC1WjcteS8LVtts1aSFwMW-LfFuaHN4jtiWFLflsmK7bcE+2uvlURu0vrathWhjSVvrTbr2t3WYgBACKxrrCtEmxrcbWa3gtE6bWqgJ1ru4Ebo1RGvTbFqsAZl-RQWhgDMCNTSrvtv2wjBNqY0UBqttgAHUDvh69dQdxW9rcuJ3Xg4M6o63jfxtA0o7Ny6OqYLMC+3tbStEW8rdhkaKkB2amQcNXjK1VU1sgqgfUpTR2KarKaoo5glYUIrEVSKuuKJIDVWHSzOplO6IpnPa207ogo6nTcRoq14zbAKu3YOxo51UAudx26OXjti3xqidputXRz1gIJEyZL1YXTLs1TFsp8OaiLQzuIIv1dmAe+ptsAfSPEl4TAsFHOTPYkDP8Ams4ZRuIJKYMAQexTCHu2yfJLYTu+tQ1ocJgo8ZO6w+jTtBwZ1Xc7upuSLo2r66EdumsNQxtPVvpxAauuMQXs50-aytf2-HWOvTUN6s95urjdboZ2LF6muzYfRgFD24l5qHoPAQ-nUxodRA9cd-J-jmpWBVMSGf1Cno3Z+o2qI+mMlluezr6Q9W+g5nt3H17789EWgAI54ow6MI4gCqhDRJhKNJaDfaPt-zj6Xt2GUddfv8jDg+ID+0gE-r40v6R9HZd-dsDAMn7QDL+nfWftUAiSQdDWprRZJa3i4sOfWpAAwBf7MgPwPmiYHRCbHgBoAKkCcXbrM1G6ItyEdRN0jlVNzsDsW5CEq1WG0HRRdEBg86Ps0XZYtdmhFOTOM1Lb1gK2zzV3p3WDThM84LvXEEu3pqYQ7UpfmB0bCNrnFz2GoJojVywAt1HeldXuuqFlaTAUaB0ou03aRI4oVpb9mrEHxFkxNz2BgCmCQNlI52nhWVPxEWyOURVgOzNbkooJ7JrZeQdwNLCQCkAaAKmlDLvmlUfaxNCdbw5R1nl+HFsWAQI8EZ82hHbDNAYzShnij4ByZER6kVEe2y2ALDT86w4Snq2dTCADh6rnhpcMWo3DxuknZ4Y43RHfD1RgI0EZCMx1pVtgHI3XzyM+HYjLRhI20eSMdGgj6R-wJkc6PdGE6eRm7tKzKAYzJC73MAalj+zwRL0Z2MYBUEBljA8seeUriUTdzjcF1MygXK0oZ7rHEiT1aoUYUeWPj3UoeWgfrjKBsb2kCxj0EsZ+yfKLjhgziI0BaDtBWgnQHoH0AGBDARgOx6SiAFWG7GfS+xpfIccq5CFXEjWU42WOnHnGzsqvOviWh7U8E7jUqB4z+wSmkY4hVgqIvpO6K5oFAVkWnD0SBKUBxh0EqwZQApM+lZmvSWkxkxjmVx1dkm8HSgch0F8EAMtKAPrKX61yr+aJrroQYnHpE+V0IbkxTkEaKmpxXXEsbMyoM0Gag-yfaSJVsyNqpUTQawE0FKCAzZSUeFBZf1AH2btT0a8HhMGFPg8tZmgqPPGVJjAHrDEuOkSXjAbZBcS0WNUOQAQ4x7yASHRrcXOWMZYoF4IOVAHkIPunSDT+OXSfiQKaEvarB3eZ7UrQZmb5JaXAkXk9SkBEMZG6KRyBjpR5izGAbKh6EcmVmFxfkEMDQTXCTomc8Um5ngB+Btm8zymPgJaap4QFkJ2a63mtlgDxkTRmSZGefOd3moke0TBLMK1WOZBkc6OHnvanvQwcCS3eGbsSXxxQFEspZqALL3mGN875qrT4RyHHPkBpg1Jt47OdhxLpkBnypHFeksw1C1zyBKCSxktQkmJhSe3c7HgakcgjzMCU8-rkHiXnJz2lL8nEKQGQynzy5182ASbwbnf+WE7AiSXtQE4kxs9YC-VIPMdHv2MXS8-ZJwU-noJsFtHs+ZXMaoeBbRDfYBfOCATxdhAbYHGhASh0pAsyQeNV0+23sUwfAVoHwA+AgJuL1lDQI-xf5QBCDAAcRSAZS8ANSfyMmGsjAAagyq+CD5QDw1BCDb1EEDCLkBNBDAcgPIH5BkaDx-AoUr+FcBKg64esCRTnAmt0rGltULkJAAJaEtvEDAnyTZXgG5xuUXA3OBIwnW5xdAyeOGNYOInaTQJT+j6AAAaectokwUdn0AiDZJVgiMJ4AABIxi7udKxC1it2DRoC6WwE4FYuo6b2VzGcKVaTI+LgAteevI3hlTUrAgSmNcDsNcTuXhLZ6STgLlqg0X7U3JFbvPsWnrdmAd+B1FIbSafM-L01qwFlvlQhWO+S2GcPVbzQaUC0WUlC4oUtrrcSSYuOLVNcjFWBogR10gPvo5GkAIlqgJNj1y2WKNfj0lweLhvyVj0-WSADaZAPiBRIB4719GbKhwxsjKwjh5NMAAksfwZLcl1BsNmUvqy1LhvWEP+m0ta4AaDEIVIZe8smWrAlcCy1tCss2W1APWBVDUlPIzKTi8qRyxFejYK8EAY+cgNVRqBItg0mMLZrlaZtBsjDrNxGG1J9mrEO1nOITkWfrT82-WGWZdRahBhFBteRjTQbumhUxWiynNwgNzbZHyojLmywm2sEUDCVGsX6B7nzbi3fXnAjaPxV9cuJk68lPBUgPdYaCPXxASg6wy9YFu-WHuSuT67pDNvO27q-19QNFiivWAb6pLdzr8a3HX74gFEXwiuKo6fwMaCgRcY2bRku3kOM4eKH+jxlR3tgjNnjmCdTtNyY7iMJO7rYOz62pDht+9EOG2C3sMQA-WEtzj6UG2zbytk2+7YHjPWM10nJRjlZLtm3WS9dgeG1Ids4Yk2wtsdhli3H+QM73gBQNYE9RGG07w2Ceylm+rlYJsGWWS-JeEyAT3ClcEO+6EKAXSlLBDdRMQDgg45ITul1GysnRukj0lLI8HgQvMqX6vgCgW26jgpUrmZ+nGwzFIS7s-WPrZuPPHUHqC23pUR8AAOSFpL9-gDwCkFNgpAVUW0EWoIGsBfw8Y06JYMUEfv1gCjfVCNsbPc4pA8YKQFjAHmnuylvAFKmoKA5sym2B4Cdu6tOdfRRp0QqeYYoX3gVaA8shdoVMXZodG2hbvdvpQPZBwP2n78AW2wAGkDjnp2kVYucul3Pbiub22yMAfAPjDEDy6n+2sALAQEFAMAMp0MOmxpgSwaYAg-rGyUBH809GQw5nTW0yuw+9aLzdfFd4zlzdvhy49Lu99euEuH2yI-rAv3Mx5t8XMDTmy3tRwDp7+7w5xB-2EileOE7ejTRnsfdldworbhtrxOWlmJWsMmAtRsCYOt+WfTHoOZ8Cp8xZpUjKXTHmmS8SpEA2A-2CgOj46F3-EwDAeUPhz2gh609bUeQPPhWjnR2JH0dIELHdDxXEaS4c-onHgeJ-D-b4dTPIn6eIJyDTAbmVpFT80HeCTsVYiSl+09DO4FWBqmo8-gEVAqK2mXTGJhzweMc8UkIjesKYLZ5CYaW61YY1SU50iNG5F4EhIs7Z6s2gDJg9nCXNcAVn-QCjxyEwFkcd2oUrIBR0I+iMKPBAFZXZLgZA2bVZIdkNAskAjD1t8iFgCYjZnrbClDB-O1ZS-E8pgbwA1QiKMsBgNBCQAFYTyClvCDS+Jp4BG+SAVUDwXKwVh94DADl6ghKMFZ0XwIZ3Dy81AoAS8UpoyUVXaWzLvYoyGSLxDkgNijghBhJIXBQhg8rAyynEMUBWediBXsAOReYiqTAo0RPBAzWQUbRmuNcoOXyfiFDlXO25FFc6q4jQCqg7Xx3QNaqObxf0e7K9feKK5krcdW5awLyXKVOPuvTn29Z7C6-JRBvh1jrg57a7DeHSPX95UflveO7KiagIHZpem8On6L9glLgkKC5OelSQAhbuKcoS1EioNefIRmCqiGbiBC1z7NkXMvHL5vRR+ixKjy92atvGzga9Uac67e9AKwEB3twSnFVHCuUELrJIKJhfARH4poOIIoEnFazzFY7lwOu8Jf2AQlzyieSyy3vgWlxUzG9gVmgi04CsdYB4FGncJMMMxCgHF6GG6w3v6gd7+AA+8seJ2nWp7wKBLKEvn5H5+qb960F6wAee7J5ED-+UAq0u7yR7C93hD8mYrhwG5UD3B4eAQfEFgHlXN9HQ8qVoPXkGwomPlcEYRr677aU0DA93krgtL7D-lkJzjkS3moiip5VQ8L6gPsHuj42bmbKimPSVPD1R7EB4RWKwrgj-i6Tc03-k7c7tyJ-o-2vlJ95dd-oo77JOFPCI8j3x+o92113sb9ucx4E8PB+P0Edj6J7mYSeePQHo+FJ-cLGf4m3H+T8O9QTSfOP8TFNz3dE-lqcMz719++8UosiX+rQd98bb7OW913NhN0wjvgakBp0PAKQzuPHS2BYg245IJRZRbFl7pwUvBlDLXQzTqYwz0QjiqP7kTL+-0nSIDK+BCr1AaXjL58pybQyZpRc76QPqvpZqKtBX+iSL2K8bVtTEAcr2DOJ7peK6mX16YMyzW5e5AQupuYT2TD3T0SN07Ii9HYDtIzuJKyrwN+q+TSsvG6QGb0gmDAARUCj0QotPrVBAsZlqEVZDyi5IE5ULB-cyLwu9UzJvpAe6aHOTPcFxi6gSuPt7G9+q+1h1bNdKupjcEeC906dFV8XMLWXpMMnLw1-7bAKt+LWrrz1+B+g+OG63obyYQxDQ-uVv3lrwO0K+Q8OvpX7r+CFBlI-VvYPmrxt+G9WBRvmyxrw9+m8yV1Ac3i2GcKW8XcZwpPwoIN--RbfqThAHb3t42mTpo6x368ad+5Xnf+cl3paX2sl-NF7v8-Kb8T2e9cFiyb3sV5HEx8-fmvDGgH8WTsuTp4vM2KL1uOxAvZ-MgJhL9iByCT0rfO4qZbVa2tho7fSXp82t3i-RfEvKxxHGnrvyR2vfHWf36eM4xG+oAJvgP-WlD-h-TxWyt4APXaT1k+gRQZWcOnxEopKOyE1P3IBRSjQnOGYilW1N9EopqcKKcgSiiiK0kfo1gavwvBqihgUUYoDkCigKHF-gaLSVqcZhRT1BfLVCYTA4GFiiwG-F8DPwvCOEN+jRDf0mIjGb9OcUUDUkuCilLEvLnAKKMf4213dhKXAdgViJP6b-V+xBqgcEEQD-Zm1lAoVlAHQBumaBBAygLy0f5GRmBIF-GJP9YGABhCt-Gzlf+v8-8WpVAfTvR45hNAugBob3YgpHGiYq1gGFzSWX8KQ5Ak0qAHhz+8NsJimQ04kgSv+u2NX554efEgEooW7mgENY7-vAGbeKAV1wbUkAUgHeQPRHH67YLQNYBbiJ5B9DWATwLqxdI6dsCTaMPzkLJrA0SBairEQshU41QPAKzhWUylrtg7CRwqQ5QBX8BliTuX-GIEQBYgpIFw80AdIJmOlATsKjySgcsYqBpcp85yB4AcUjPANgP4CQBygdIFcgVAtQEGBJKP4h-uEbCYFwBK4OgFV+v3L0pSodziiiqWVftX65ckMOIr8wcUFIr-QnYH4B7I44JGCBGX6kczRButBgCgEmyKLBVoxiqKRV+PWJQE7Y8fjsKKWjAQ4G1ktWM4E+BbgTOB3OzeBgHVI4gjUD72H0CuxeBNftkhKu4YF6A68QYI2YXE+oCEGbCdlmUGhKXwlthx+GQfIGGBD-kUC5BdvPkG1BS-nu7uBYwjJTN4cfvv4VBIAOpbyANQWUE+BjYo0FpgSAEBBggXQVX49BrbP0FgBgwSSiXAHEPYHsWYwU4ETBP-sUEzBpSq-6+BY4BGA68HQW0GCgLQaGATilAQsGi2llAhCcO+wRv69B+bLtgDB1gUUAQ0AUOojjYpDpcGqs4wWUG2BZwtmrzBNfmIIZYyqnYGWBawc84H2oId4HkBdMgSF1BZwQhAkh3-kUHpBYAVCHkAMIXmyUBYAff5iQ9QOZikAygI4DoSR-p8Kn+wgHiBIAWAPaBX+IANWa3+xAHWzMhdMsoBNACwLtiOoAUPVST8NAHe58AcoPxhmoZZsszugvKAUHkBGYLeBlBhEC9CyAf+ishPAqwj5TU4NIA8BHBPAAsCjU8ftyEn+lxMoAAA7JgZqALACKFaAygD-5qAQAA): 

```js
import { make, selectBase, unselectBase } from "./dml";

const createGF = function (type, content, attribs) {
  return (content, attribs) => make(type, attribs, content);
};

// Reminder : DML already provides those functions and many others
const div = createGF("div");
const h1 = createGF("h1");
const input = createGF("input");
const br = createGF("br");

const container = function () {
  return selectBase(div("", {
    style:"border:1px solid black;background:rgba(0, 0, 0, 0.1);padding:10px"
  }));
}

const header = function () {
  selectBase(div(""))
  h1("Header", {
    style:"background:orange;color:black"});
  unselectBase();
}

const content = function () {
  selectBase(div(""));
  h1("Content", {
    style:"background:white;"});
  unselectBase();
}


const footer = function () {
  selectBase(div("", {style:"background:black;color:orange"}));
  h1("Footer");
  unselectBase();
}

const TodoApp =  function () {
  container();
    h1("Container");
    header();
    content();
    footer();
  unselectBase();
}

TodoApp();
```

If could also be implemented like this :

```js
import { make, selectBase, unselectBase } from "./dml";

const createGF = function (type, content, attribs) {
  return (content, attribs) => make(type, attribs, content);
};

// Reminder : DML already provides those functions and many others
const div = createGF("div");
const h1 = createGF("h1");
const input = createGF("input");
const br = createGF("br");

const container = function () {
  return selectBase(div("", {
    style:"border:1px solid black;background:rgba(0, 0, 0, 0.1);padding:10px"
  }));
}

const header = function () {
  selectBase(div(""))
  h1("Header", {
    style:"background:orange;color:black"});
}

const content = function () {
  selectBase(div(""));
  h1("Content", {
    style:"background:white;"});
}


const footer = function () {
  selectBase(div("", {style:"background:black;color:orange"}));
  h1("Footer");
}

const TodoApp =  function () {
  container();
    h1("Container");
    header();
    content();
    footer();
  unselectBase(4);
}

TodoApp();
``` 

I 'poped' all the base points in one instruction **unselectBase(4)**;


We are ready to start coding our TodoApp, armed with our three powerfull functions provided by DML:

```js
import { make, selectBase, unselectBase } from "./dml";
```

Hope you enjoy.

Stay tuned for the next part.