diff --git a/.gitignore b/.gitignore
index 8e4ec46..154feca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
-lab03.cbp
+lab04.cbp
+/curl
 /bin
 /obj
-lab03.depend
+lab04.depend
+lab04.layout
 unittest.depend
 unittest.cbp
diff --git a/main.cpp b/main.cpp
index 104bbcb..387baf4 100644
--- a/main.cpp
+++ b/main.cpp
@@ -3,6 +3,7 @@
 #include "histogram.h"
 #include "svg.h"
 #include "show_svg.h"
+#include <curl/curl.h>
 using namespace std;
 
 
@@ -14,31 +15,39 @@ struct Input {
 };
 
 Input
-input_data() {
+input_data(istream& stream, bool prompt) {
+    size_t number_count;
+    if (prompt) {
+        cerr << "Enter number count: ";
+    }
+    stream >> number_count;
+
     Input in;
-    cerr << "Enter number count: ";
-    cin >> in.number_count;
 
+    in.numbers.resize(number_count);
 
-    vector<double> numbers(in.number_count);
-    in.numbers.resize(in.number_count);
-    for (size_t i = 0; i < in.number_count; i++) {
-        cin >> in.numbers[i];
+    if (prompt){
+            cerr << "Enter numbers: ";
+    }
+    for (size_t i = 0; i < number_count; i++)
+    {
+        stream >> in.numbers[i];
     }
 
-    size_t bin_count;
-    cerr << "Enter bin count: ";
-    cin >> in.bin_count;
+    if (prompt){
+    cerr << "Enter number of bins: ";
+    }
+        stream >> in.bin_count;
 
-    size_t max_count;
-    in.max_count = 0;
     return in;
 }
 
 
 int main()
 {
-    Input in = input_data();
+    curl_global_init(CURL_GLOBAL_ALL);
+    bool prompt = true;
+    auto in = input_data(cin, prompt);
     vector<size_t> bins = make_histogram(in.numbers, in.bin_count, in.number_count, in.max_count);
     show_histogram_svg(bins);
     return 0;