diff --git a/src/distance.c b/src/distance.c
index 79c24d282a4ee2b3b26cce7928959c8415e8dde9..922e24035a305bc6bb7dcbb10aba233f85a16cc0 100644
--- a/src/distance.c
+++ b/src/distance.c
@@ -20,9 +20,7 @@ double distance_euclid_int(const vector_int_t* p1, const vector_int_t* p2) {
 	return sqrt((double) acc);
 }
 
-inline int_t
-
-abs_diff(const int_t a1, const int_t a2) {
+int_t abs_diff(const int_t a1, const int_t a2) {
 	int_t diff = a2 - a1;
 	return diff >= 0 ? diff : -diff;
 }
@@ -39,5 +37,12 @@ double distance_manhattan_int(const vector_int_t* p1, const vector_int_t* p2) {
 }
 
 double distance_chebyshev_int(const vector_int_t* p1, const vector_int_t* p2) {
-	return ERROR;
+	if (p1->dim != p2->dim)return ERROR;
+	int_t max = ERROR;
+	int_t item;
+	for (size_t i = 0; i < p1->dim; ++i) {
+		item = abs_diff(p1->data[i], p2->data[i]);
+		if (item > max) max = item;
+	}
+	return (double) max;
 }
diff --git a/src/main.c b/src/main.c
index 58fde71fd21e4f6a9f90bf62e9ef4877071cf4df..d675d0b0fcedd2d78b43a1030ec15f7d2ce7fb40 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,6 +1,13 @@
+#include <stdio.h>
 #include <stdlib.h>
 
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
+	fprintf(stderr, "USAGE:    %s  <INPUT_FILE>  <OUTPUT_FILE>\n", argv[0]);
+	char* ipath = "/dev/stdin";
+	char* opath = "/dev/stdout";
+	if (argc > 1) ipath = argv[1];
+	if (argc > 2) opath = argv[2];
+	// TODO
 	return EXIT_SUCCESS;
 }