diff --git a/src/vector.c b/src/vector.c
new file mode 100644
index 0000000000000000000000000000000000000000..41ce2975d078148b47ede58e802ac818efbf2021
--- /dev/null
+++ b/src/vector.c
@@ -0,0 +1,15 @@
+//
+// Created by Boris Stefanovic on 24/05/22.
+//
+#include "vector.h"
+
+#include <stdlib.h>
+
+
+vector_int_t* vector_int_create(const size_t dim, const int* data) {
+	vector_int_t* v;
+	if ((v = malloc(dim * sizeof(int))) == NULL) return NULL;
+	v->dim = dim;
+	for (int i = 0; i < dim; ++i) v->data[i] = data[i];
+	return v;
+}
diff --git a/src/vector.h b/src/vector.h
new file mode 100644
index 0000000000000000000000000000000000000000..a9bfb94239b61b5f0af8eb3e23e82752aeaaca9e
--- /dev/null
+++ b/src/vector.h
@@ -0,0 +1,18 @@
+//
+// Created by Boris Stefanovic on 24/05/22.
+//
+#ifndef PROG_KMEANS_VECTOR_H
+#define PROG_KMEANS_VECTOR_H
+
+#include <stdlib.h>
+
+
+typedef struct _vector_int {
+	size_t dim;
+	int* data;
+} vector_int_t;
+
+vector_int_t* vector_int_create(const size_t dim, const int* data);
+
+
+#endif //PROG_KMEANS_VECTOR_H