Aligning Labels to a Bar Chart with D3 - Cannot Solve

I cannot figure out a solution to this task, the labels seem to not align even when I follow the outline in the task.
I’ve added a text node, and appended x and y axis for the labels which need to sit above the bars. Please see instructions in link, however, nothing seems to make it look ok.
Your code so far


<body>
<script>
  const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];

  const w = 500;
  const h = 100;

  const svg = d3.select("body")
                .append("svg")
                .attr("width", w)
                .attr("height", h);

  svg.selectAll("rect")
     .data(dataset)
     .enter()
     .append("rect")
     .attr("x", (dataset, i) => i * 30)
     .attr("y", (dataset, i) => h - 3 * dataset)
     .attr("width", 25)
     .attr("height", (dataset, i) => 3 * dataset)
     .attr("fill", "navy");

  svg.selectAll("text")
     .data(dataset)
     .enter()
     // Add your code below this line
     .append("text")
     .attr("x", (dataset,i) => i * 0)
     .attr("y", (dataset,i) => i * 30)
     .text(dataset)


     // Add your code above this line
</script>
<body>

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0.

Challenge: Add Labels to D3 Elements

Link to the challenge:
https://www.freecodecamp.org/learn/data-visualization/data-visualization-with-d3/add-labels-to-d3-elements

Currently every your label contains all values of your dataset - take a look at .text(dataset). Changing this to display just single value in each label should help you with clarity and allow to tackle the proper positioning.