diff --git a/integration/.gitignore b/integration/.gitignore
deleted file mode 100644
index c585e19389d195ff2268d354ecf676d738a578de..0000000000000000000000000000000000000000
--- a/integration/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-out
\ No newline at end of file
diff --git a/integration/CMakeDemo/.gitignore b/integration/CMakeDemo/.gitignore
deleted file mode 100644
index facd9a12fc110d698803cb3e8b6a34b9f00f142c..0000000000000000000000000000000000000000
--- a/integration/CMakeDemo/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.cmake
\ No newline at end of file
diff --git a/integration/CMakeDemo/CMakeLists.txt b/integration/CMakeDemo/CMakeLists.txt
deleted file mode 100644
index b69ff9aec9fe93af6d5364edb80cff67a51a5ba0..0000000000000000000000000000000000000000
--- a/integration/CMakeDemo/CMakeLists.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-cmake_minimum_required( VERSION 3.24 )
-
-project( pssfg_cmake_integration_test )
-
-set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${pssfg_cmake_integration_test_SOURCE_DIR}/.cmake )
-
-#   Don't try this at home!
-file(MAKE_DIRECTORY .cmake)
-execute_process( COMMAND sfg-cli cmake make-find-module
-                 WORKING_DIRECTORY ${pssfg_cmake_integration_test_SOURCE_DIR}/.cmake )
-
-find_package( PystencilsSfg REQUIRED )
-
-set( PystencilsSfg_CONFIG_MODULE codegen_config.py )
-
-add_library( genlib )
-pystencilssfg_generate_target_sources( genlib SCRIPTS kernels.py FILE_EXTENSIONS .h .cpp )
-pystencilssfg_generate_target_sources( genlib SCRIPTS more_kernels.py )
diff --git a/integration/CMakeDemo/codegen_config.py b/integration/CMakeDemo/codegen_config.py
deleted file mode 100644
index 8162ae460328ab0229f422c3ec9d63522106a78b..0000000000000000000000000000000000000000
--- a/integration/CMakeDemo/codegen_config.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from pystencilssfg import SfgConfig
-
-
-def configure(cfg: SfgConfig):
-    cfg.extensions.header = "h++"
-    cfg.extensions.impl = "c++"
diff --git a/integration/CMakeDemo/kernels.py b/integration/CMakeDemo/kernels.py
deleted file mode 100644
index 517c7e0f512761c2cd08842ca5d1a9cd1924edba..0000000000000000000000000000000000000000
--- a/integration/CMakeDemo/kernels.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# type: ignore
-
-import sympy as sp
-
-from pystencils import fields, kernel
-
-from pystencilssfg import SourceFileGenerator, SfgComposer
-
-
-with SourceFileGenerator() as ctx:
-    sfg = SfgComposer(ctx)
-
-    src, dst = fields("src, dst(1) : double[2D]")
-
-    @kernel
-    def poisson_jacobi():
-        dst[0, 0] @= (src[1, 0] + src[-1, 0] + src[0, 1] + src[0, -1]) / 4
-
-    poisson_kernel = sfg.kernels.create(poisson_jacobi)
-
-    sfg.function("jacobi_smooth")(
-        sfg.call(poisson_kernel)
-    )
diff --git a/integration/CMakeDemo/more_kernels.py b/integration/CMakeDemo/more_kernels.py
deleted file mode 100644
index 5fbd6addccb66596c289ef9abc38b7baf772226b..0000000000000000000000000000000000000000
--- a/integration/CMakeDemo/more_kernels.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# type: ignore
-
-import sympy as sp
-
-from pystencils import fields, kernel, Field
-
-from pystencilssfg import SourceFileGenerator, SfgComposer
-
-with SourceFileGenerator() as ctx:
-    sfg = SfgComposer(ctx)
-
-    src: Field = fields("src: double[2D]")
-
-    h = sp.Symbol('h')
-
-    @kernel
-    def poisson_gs():
-        src[0, 0] @= (src[1, 0] + src[-1, 0] + src[0, 1] + src[0, -1]) / 4
-
-    poisson_kernel = sfg.kernels.create(poisson_gs)
-
-    sfg.function("gs_smooth")(
-        sfg.call(poisson_kernel)
-    )
diff --git a/integration/MakeDemo/Makefile b/integration/MakeDemo/Makefile
deleted file mode 100644
index 5a2fb0e99793bf2bcb0665ddc87a8051f48e36f9..0000000000000000000000000000000000000000
--- a/integration/MakeDemo/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-
-CXX := clang++
-CXX_FLAGS := -DDEBUG -g -std=c++2b -I/home/fhennig/lssgit/mdspan/include
-
-PYTHON := python
-
-MKDIR := mkdir -p
-dir_guard = $(MKDIR) $(@D)	
-
-OBJ := obj
-BIN := bin
-GEN_SRC := generated_src
-
-.PHONY: all clean
-
-all: $(BIN)/mdspan_test
-
-clean: 
-	rm -rf $(BIN) $(OBJ) $(GEN_SRC)
-
-$(GEN_SRC)/kernels.cpp $(GEN_SRC)/kernels.h &: kernels.py
-	@$(dir_guard)
-	$(PYTHON) $< --sfg-output-dir $(@D)
-
-$(OBJ)/kernels.o: $(GEN_SRC)/kernels.cpp $(GEN_SRC)/kernels.h
-	@$(dir_guard)
-	$(CXX) $(CXX_FLAGS) -c -o $@ $<
-
-$(OBJ)/main.o: main.cpp $(GEN_SRC)/kernels.h
-	@$(dir_guard)
-	$(CXX) $(CXX_FLAGS) -c -o $@ $<
-
-$(BIN)/mdspan_test: $(OBJ)/kernels.o $(OBJ)/main.o
-	@$(dir_guard)
-	$(CXX) $(CXX_FLAGS) -o $@ $^
-
diff --git a/integration/MakeDemo/kernels.py b/integration/MakeDemo/kernels.py
deleted file mode 100644
index 87f2920b5c788a5031ddbe67a71e788a980183c7..0000000000000000000000000000000000000000
--- a/integration/MakeDemo/kernels.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# type: ignore
-
-import sympy as sp
-
-from pystencils import fields, kernel
-
-from pystencilssfg import SourceFileGenerator, SfgConfiguration, SfgComposer
-from pystencilssfg.lang.cpp import mdspan_ref
-
-sfg_config = SfgConfiguration(
-    outer_namespace="make_demo"
-)
-
-with SourceFileGenerator(sfg_config) as ctx:
-    sfg = SfgComposer(ctx)
-    
-    sfg.prelude("""Generated by the pystencils Source File Generator.
-
-Author: Frederik Hennig <frederik.hennig@fau.de>""")
-    
-    sfg.define("using namespace std;")
-    
-    sfg.namespace("jacobi")
-
-    u_src, u_dst, f = fields("u_src, u_dst, f : double[2D]", layout="fzyx")
-    h = sp.Symbol("h")
-
-    @kernel
-    def poisson_jacobi():
-        u_dst[0,0] @= (h**2 * f[0, 0] * u_src[1, 0] + u_src[-1, 0] + u_src[0, 1] + u_src[0, -1]) / 4
-
-    poisson_kernel = sfg.kernels.create(poisson_jacobi)
-
-    sfg.function("jacobi_smooth")(
-        sfg.map_field(u_src, mdspan_ref(u_src)),
-        sfg.map_field(u_dst, mdspan_ref(u_dst)),
-        sfg.map_field(f, mdspan_ref(f)),
-        sfg.call(poisson_kernel)
-    )
diff --git a/integration/MakeDemo/main.cpp b/integration/MakeDemo/main.cpp
deleted file mode 100644
index 033261f0f090d0e6ed1bfeec2d999e29a7ac8e90..0000000000000000000000000000000000000000
--- a/integration/MakeDemo/main.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <iostream>
-#include <fstream>
-
-#include <cstdint>
-#include <vector>
-
-#include <experimental/mdspan>
-
-#include "generated_src/kernels.h"
-
-using field_t = std::mdspan< double, std::extents< uint32_t, std::dynamic_extent, std::dynamic_extent > >;
-
-double boundary(double x, double y){
-    return 1.0;
-}
-
-int main(int argc, char ** argv){
-    uint32_t N = 8; /* number of grid nodes */
-    double h = 1.0 / (double(N) - 1);
-    uint32_t n_iters = 100;
-
-    std::vector< double > data_src(N*N);
-    field_t src(data_src.data(), N, N);
-
-    std::vector< double > data_dst(N*N);
-    field_t dst(data_dst.data(), N, N);
-
-    std::vector< double > data_f(N*N);
-    field_t f(data_f.data(), N, N);
-
-    for(uint32_t i = 0; i < N; ++i){
-        for(uint32_t j = 0; j < N; ++j){
-            if(i == 0 || j == 0 || i == N-1 || j == N-1){
-                src[i, j] = boundary(double(i) * h, double(j) * h);
-                dst[i, j] = boundary(double(i) * h, double(j) * h);
-                f[i, j] = 0.0;
-            }
-        }
-    }
-    
-    for(uint32_t i = 0; i < n_iters; ++i){
-        make_demo::jacobi::jacobi_smooth(f, h, dst, src);
-        std::swap(src, dst);
-    }
-
-    std::ofstream file("data.out", std::ios::trunc | std::ios::out);
-
-    if(!file.is_open()){
-        std::cerr << "Could not open output file.\n";
-    } else {
-        for(uint32_t i = 0; i < N; ++i){
-            for(uint32_t j = 0; j < N; ++j){
-                file << src[i, j] << " ";
-            }
-            file << '\n';
-        }
-    }
-
-    file.close();
-
-    return 0;
-}
diff --git a/integration/TestSequencing.py b/integration/TestSequencing.py
deleted file mode 100644
index b25593a114082ab419de632b48478b0770f079b6..0000000000000000000000000000000000000000
--- a/integration/TestSequencing.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from pystencilssfg import SourceFileGenerator, SfgComposer
-
-from lbmpy.advanced_streaming import Timestep
-from lbmpy import LBMConfig, create_lb_ast
-
-with SourceFileGenerator() as ctx:
-    sfg = SfgComposer(ctx)
-
-    lb_config = LBMConfig(streaming_pattern='esotwist')
-
-    lb_ast_even = create_lb_ast(lbm_config=lb_config, timestep=Timestep.EVEN)
-
-    lb_ast_odd = create_lb_ast(lbm_config=lb_config, timestep=Timestep.ODD)
-
-    kernel_even = sfg.kernels.add(lb_ast_even, "lb_even")
-    kernel_odd = sfg.kernels.add(lb_ast_odd, "lb_odd")
-
-    sfg.function("myFunction")(
-        sfg.branch("(timestep & 1) ^ 1")(
-            sfg.call(kernel_even)
-        )(
-            sfg.call(kernel_odd)
-        )
-    )
diff --git a/integration/__init__.py b/integration/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/integration/test_class_composer.py b/integration/test_class_composer.py
deleted file mode 100644
index 2a028b0e48175dc950798006fdf02ace1f408a9a..0000000000000000000000000000000000000000
--- a/integration/test_class_composer.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# type: ignore
-from pystencilssfg import SourceFileGenerator, SfgConfiguration, SfgComposer
-from pystencilssfg.configuration import SfgCodeStyle
-from pystencilssfg.composer import SfgClassComposer
-
-from pystencils import fields, kernel
-
-sfg_config = SfgConfiguration(
-    output_directory="out/test_class_composer",
-    outer_namespace="gen_code",
-    codestyle=SfgCodeStyle(
-        code_style="Mozilla",
-        force_clang_format=True
-    )
-)
-
-f, g = fields("f, g(1): double[2D]")
-
-with SourceFileGenerator(sfg_config) as ctx:
-    sfg = SfgComposer(ctx)
-
-    @kernel
-    def assignments():
-        f[0, 0] @= 3 * g[0, 0]
-
-    khandle = sfg.kernels.create(assignments)
-
-    sfg.struct("DataStruct")(
-        sfg.var("coord", "uint32_t"),
-        sfg.var("value", "float")
-    ),
-
-    sfg.klass("MyClass", bases=("MyBaseClass",))(
-        # class body sequencer
-
-        sfg.constructor(sfg.var("a", "int"))
-        .init("a_(a)")
-        .body(
-            'cout << "Hi!" << endl;'
-        ),
-
-        sfg.private(
-            sfg.var("a_", "int"),
-
-            sfg.method("getX", returns="int")(
-                "return 2.0;"
-            )
-        ),
-
-        sfg.public(
-            "using xtype = uint8_t;"
-        )
-    )
diff --git a/integration/test_classes.py b/integration/test_classes.py
deleted file mode 100644
index 4be345197965ae8b15353f3ce0471e265d28b35d..0000000000000000000000000000000000000000
--- a/integration/test_classes.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# type: ignore
-from pystencilssfg import SourceFileGenerator, SfgConfiguration, SfgComposer
-from pystencilssfg.configuration import SfgCodeStyle
-from pystencils.types import PsCustomType
-from pystencilssfg.ir.source_components import SfgClass, SfgMemberVariable, SfgConstructor, SfgMethod
-
-from pystencils import fields, kernel
-
-sfg_config = SfgConfiguration(
-    output_directory="out/test_classes",
-    outer_namespace="gen_code",
-    codestyle=SfgCodeStyle(
-        code_style="Mozilla",
-        force_clang_format=True
-    )
-)
-
-f, g = fields("f, g(1): double[2D]")
-
-with SourceFileGenerator(sfg_config) as ctx:
-    sfg = SfgComposer(ctx)
-
-    @kernel
-    def assignments():
-        f[0,0] @= 3 * g[0,0]
-
-    khandle = sfg.kernels.create(assignments)
-
-    cls = SfgClass("MyClass")
-    cls.default.append_member(SfgMethod(
-        "callKernel",
-        sfg.call(khandle)
-    ))
-
-    cls.default.append_member(SfgMethod(
-        "inlineConst",
-        sfg.seq(
-            "return -1.0;"
-        ),
-        return_type="double",
-        inline=True,
-        const=True
-    ))
-
-    cls.default.append_member(SfgMethod(
-        "awesomeMethod",
-        sfg.seq(
-            "return 2.0f;"
-        ),
-        return_type="float",
-        inline=False,
-        const=True
-    ))
-
-    cls.default.append_member(
-        SfgMemberVariable(
-            "stuff", PsCustomType("std::vector< int > &")
-        )
-    )
-
-    cls.default.append_member(
-        SfgConstructor(
-            [sfg.var("stuff", PsCustomType("std::vector< int > &"))],
-            ["stuff_(stuff)"]
-        )
-    )
-
-    sfg.context.add_class(cls)
diff --git a/integration/test_cuda.py b/integration/test_cuda.py
deleted file mode 100644
index 56a478c7b08e684fb03398b5b7cb951982336fe8..0000000000000000000000000000000000000000
--- a/integration/test_cuda.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from pystencils import Target, CreateKernelConfig, create_kernel, no_jit
-from lbmpy import create_lb_update_rule, LBMOptimisation
-from pystencilssfg import SourceFileGenerator, SfgConfiguration
-from pystencilssfg.lang.cpp import mdspan_ref
-
-sfg_config = SfgConfiguration(
-    output_directory="out/test_cuda",
-    outer_namespace="gen_code",
-    impl_extension="cu"
-)
-
-with SourceFileGenerator(sfg_config) as sfg:
-    gen_config = CreateKernelConfig(target=Target.CUDA, jit=no_jit)
-    opt = LBMOptimisation(field_layout="fzyx")
-    update = create_lb_update_rule()
-    kernel = sfg.kernels.create(update, "lbm_update", gen_config)
-
-    sfg.function("lb_update")(
-        sfg.call(kernel)
-    )
diff --git a/integration/test_sycl.py b/integration/test_sycl.py
deleted file mode 100644
index d49edc71bbf8c10afa57bb7abbe9240043f00c5b..0000000000000000000000000000000000000000
--- a/integration/test_sycl.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from pystencils import Target, CreateKernelConfig, create_kernel, no_jit
-from lbmpy import create_lb_update_rule, LBMOptimisation
-from pystencilssfg import SourceFileGenerator, SfgConfiguration, SfgOutputMode
-from pystencilssfg.lang.cpp import mdspan_ref
-
-sfg_config = SfgConfiguration(
-    output_directory="out/test_sycl",
-    outer_namespace="gen_code",
-    impl_extension="ipp",
-    output_mode=SfgOutputMode.INLINE
-)
-
-with SourceFileGenerator(sfg_config) as sfg:
-    gen_config = CreateKernelConfig(target=Target.SYCL, jit=no_jit)
-    opt = LBMOptimisation(field_layout="fzyx")
-    update = create_lb_update_rule()
-    kernel = sfg.kernels.create(update, "lbm_update", gen_config)
-
-    sfg.function("lb_update")(
-        sfg.call(kernel)
-    )
diff --git a/integration/test_sycl_buffer.py b/integration/test_sycl_buffer.py
deleted file mode 100644
index a1e52eb85af599814a2192b726afd4aae2fd084d..0000000000000000000000000000000000000000
--- a/integration/test_sycl_buffer.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from pystencils import Target, CreateKernelConfig, no_jit
-from lbmpy import create_lb_update_rule, LBMOptimisation
-from pystencilssfg import SourceFileGenerator, SfgConfig, OutputMode
-from pystencilssfg.lang.cpp.sycl_accessor import sycl_accessor_ref
-import pystencilssfg.extensions.sycl as sycl
-from itertools import chain
-
-sfg_config = SfgConfig(
-    output_directory="out/test_sycl_buffer",
-    outer_namespace="gen_code",
-    output_mode=OutputMode.INLINE,
-)
-
-with SourceFileGenerator(sfg_config) as sfg:
-    sfg = sycl.SyclComposer(sfg)
-    gen_config = CreateKernelConfig(target=Target.SYCL, jit=no_jit)
-    opt = LBMOptimisation(field_layout="fzyx")
-    update = create_lb_update_rule(lbm_optimisation=opt)
-    kernel = sfg.kernels.create(update, "lbm_update", gen_config)
-
-    cgh = sfg.sycl_handler("handler")
-    rang = sfg.sycl_range(update.method.dim, "range")
-    mappings = [
-        sfg.map_field(field, sycl_accessor_ref(field))
-        for field in chain(update.free_fields, update.bound_fields)
-    ]
-
-    sfg.function("lb_update")(
-        cgh.parallel_for(rang)(
-            *mappings,
-            sfg.call(kernel),
-        ),
-    )