diff --git a/Makefile b/Makefile
index cfba4230694710f8cf09a83dd6ba3f3018297f0e..cfe6207b7b603df72219e356f99c2de0b1878fad 100644
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,5 @@
 all: build
 
-OS := $(shell uname -s)
-ifeq ($(OS), Linux)
-	SRC_LIB = libsbroad.so
-else
-	ifeq ($(OS), Darwin)
-		SRC_LIB = libsbroad.dylib
-	endif
-endif
 IMAGE_NAME = docker-public.binary.picodata.io/sbroad-builder:0.6.0
 
 bench:
@@ -26,22 +18,13 @@ build_debug:
 	make clean
 	cargo build
 
-build_integration:
-	cd test_app && cartridge build
-
 clean:
 	rm -rf target/release/build/sbroad-* 
 	rm -rf target/release/deps/sbroad-* 
 	rm -rf target/release/incremental/sbroad-* 
 	rm -rf target/debug/build/sbroad-* 
 	rm -rf target/debug/deps/sbroad-* 
-	rm -rf target/debug/incremental/sbroad-* 
-
-install_release:
-	mkdir -p $(LUADIR)/$(PROJECT_NAME)
-	cp -Rf target/release/$(SRC_LIB) $(LIBDIR)
-	cp -Rf src/*.lua $(LUADIR)/$(PROJECT_NAME)
-	cp -Rf cartridge $(LUADIR)
+	rm -rf target/debug/incremental/sbroad-*
 
 lint:
 	cargo fmt --all -- --check
@@ -50,16 +33,11 @@ lint:
 	./deps.sh
 	./.rocks/bin/luacheck .
 
-run_integration:
-	cd test_app && rm -rf tmp/tarantool.log && TARANTOOL_LOG_LEVEL=7 TARANTOOL_LOG=tmp/tarantool.log ./.rocks/bin/luatest --coverage -v test/
-
 test:
-	make clean
 	cargo test --features mock -vv
 
 test_integration:
-	make build_integration
-	make run_integration
+	cd sbroad-cartridge && $(MAKE) test_integration
 
 test_all: test bench_check test_integration
 
diff --git a/sbroad-cartridge/Cargo.toml b/sbroad-cartridge/Cargo.toml
index 9f79f389ce62d8ffa80563be7c1ff3cc6bb75635..b2516950775d4a248f7a533c5cb3c526a774ccd3 100644
--- a/sbroad-cartridge/Cargo.toml
+++ b/sbroad-cartridge/Cargo.toml
@@ -20,5 +20,9 @@ yaml-rust = "0.4"
 pretty_assertions = "1.3"
 rmp-serde = "0.14"
 
+[lib]
+name = "sbroad_cartridge"
+crate-type = ["cdylib", "rlib"]
+
 [features]
 mock = ["sbroad-core/mock"]
diff --git a/sbroad-cartridge/Makefile b/sbroad-cartridge/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..07b4f680e90107056305c394ea741e90bc3b54aa
--- /dev/null
+++ b/sbroad-cartridge/Makefile
@@ -0,0 +1,27 @@
+OS := $(shell uname -s)
+ifeq ($(OS), Linux)
+	SRC_LIB = libsbroad_cartridge.so
+	DEST_LIB = libsbroad.so
+else
+	ifeq ($(OS), Darwin)
+		SRC_LIB = libsbroad_cartridge.dylib
+		DEST_LIB = libsbroad.dylib
+	endif
+endif
+
+build:
+	cargo build --release
+
+build_integration:
+	cd test_app && cartridge build
+
+run_integration:
+	cd test_app && rm -rf tmp/tarantool.log && TARANTOOL_LOG_LEVEL=7 TARANTOOL_LOG=tmp/tarantool.log ./.rocks/bin/luatest --coverage -v test/
+
+install_release:
+	mkdir -p $(LUADIR)/$(PROJECT_NAME)
+	cp -Rf ../target/release/$(SRC_LIB) $(LIBDIR)/$(DEST_LIB)
+	cp -Rf src/*.lua $(LUADIR)/$(PROJECT_NAME)
+	cp -Rf cartridge $(LUADIR)
+
+test_integration: build_integration run_integration
diff --git a/sbroad-scm-1.rockspec b/sbroad-cartridge/sbroad-scm-1.rockspec
similarity index 100%
rename from sbroad-scm-1.rockspec
rename to sbroad-cartridge/sbroad-scm-1.rockspec
diff --git a/sbroad-core/src/init.lua b/sbroad-cartridge/src/init.lua
similarity index 100%
rename from sbroad-core/src/init.lua
rename to sbroad-cartridge/src/init.lua