diff --git a/src/main.zig b/src/main.zig
index dfdc55a..07e51fb 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -25,6 +25,8 @@ pub fn main() !void {
         plotGraph();
         drawAxis();
         try markAxis(allocator);
+        const area = try simpsonsRule(-5, 5, 1000000);
+        try displayAreaSize(area);
 
         rl.endDrawing();
     }
@@ -125,7 +127,7 @@ fn plotGraph() void {
 
 // f(x)
 fn getY(x: f32) !f32 {
-    return try math.calculate(x, 2, .Power) / -2 + 6;
+    return try math.calculate(x, 2, .Power);
 }
 
 fn adjustForGridSystem(input_vector: rl.Vector2) rl.Vector2 {
@@ -139,11 +141,11 @@ fn adjustForGridSystem(input_vector: rl.Vector2) rl.Vector2 {
     return new_vector;
 }
 
-fn calculateArea(val: f32) !void {
-    var buf: u8[20] = undefined;
+fn displayAreaSize(val: f32) !void {
+    var buf: [20]u8 = undefined;
 
     const txt = try std.fmt.bufPrintZ(&buf, "{}", .{val});
-    rl.drawText(txt, SCREENWIDTH - 75, 25, 20, rl.Color.red);
+    rl.drawText(txt, SCREENWIDTH - 150, 25, 20, rl.Color.red);
 }
 
 const SimpsonsError = error{
@@ -155,17 +157,17 @@ fn simpsonsRule(start: f32, end: f32, n: usize) !f32 {
 
     const h = (end - start) / @as(f32, @floatFromInt(n));
 
-    var sum: f32 = getY(start) + getY(end);
+    var sum: f32 = try getY(start) + try getY(end);
 
     var i: usize = 1;
 
     // we iterate through amount of subintervals
     while (i < n) : (i += 1) {
         // calculate x of the slice we're adding (start + )
-        const x = start + i * h;
+        const x = start + @as(f32, @floatFromInt(i)) * h;
 
         // determine weights 4 for odd, 2 for even
-        sum += if (x % 2 == 0) 2 * getY(x) else 4 * getY(x);
+        sum += if (@mod(i, 2) == 0) 2 * try getY(x) else 4 * try getY(x);
     }
 
     return (h / 3.0) * sum;