diff --git a/pystencils/cpu/kernelcreation.py b/pystencils/cpu/kernelcreation.py
index c84ed8d2b6764c4f67db7c8235fa1acfa3e63752..c28e7d0ad686cad3f1689f1c1e8c67a0ab40def5 100644
--- a/pystencils/cpu/kernelcreation.py
+++ b/pystencils/cpu/kernelcreation.py
@@ -19,7 +19,7 @@ AssignmentOrAstNodeList = List[Union[Assignment, ast.Node]]
 
 def create_kernel(assignments: AssignmentOrAstNodeList, function_name: str = "kernel", type_info='double',
                   split_groups=(), iteration_slice=None, ghost_layers=None,
-                  skip_independence_check=False, optimizations=optims_pystencils_cpu) -> KernelFunction:
+                  skip_independence_check=False, sympy_optimizations=optims_pystencils_cpu) -> KernelFunction:
     """Creates an abstract syntax tree for a kernel function, by taking a list of update rules.
 
     Loops are created according to the field accesses in the equations.
@@ -55,9 +55,9 @@ def create_kernel(assignments: AssignmentOrAstNodeList, function_name: str = "ke
         else:
             raise ValueError("Term has to be field access or symbol")
 
-    if optimizations is None:
-        optimizations = optims_pystencils_cpu
-    assignments = optimize_assignments(assignments, optimizations)
+    if sympy_optimizations is None:
+        sympy_optimizations = optims_pystencils_cpu
+    assignments = optimize_assignments(assignments, sympy_optimizations)
 
     fields_read, fields_written, assignments = add_types(assignments, type_info, not skip_independence_check)
     all_fields = fields_read.union(fields_written)
@@ -99,7 +99,7 @@ def create_indexed_kernel(assignments: AssignmentOrAstNodeList,
                           function_name="kernel",
                           type_info=None,
                           coordinate_names=('x', 'y', 'z'),
-                          optimizations=optims_pystencils_cpu) -> KernelFunction:
+                          sympy_optimizations=optims_pystencils_cpu) -> KernelFunction:
     """
     Similar to :func:`create_kernel`, but here not all cells of a field are updated but only cells with
     coordinates which are stored in an index field. This traversal method can e.g. be used for boundary handling.
@@ -116,10 +116,10 @@ def create_indexed_kernel(assignments: AssignmentOrAstNodeList,
         function_name: see documentation of :func:`create_kernel`
         coordinate_names: name of the coordinate fields in the struct data type
     """
-    if optimizations is None:
-        optimizations = optims_pystencils_cpu
+    if sympy_optimizations is None:
+        sympy_optimizations = optims_pystencils_cpu
 
-    assignments = optimize_assignments(assignments, optimizations)
+    assignments = optimize_assignments(assignments, sympy_optimizations)
 
     fields_read, fields_written, assignments = add_types(assignments, type_info, check_independence_condition=False)
     all_fields = fields_read.union(fields_written)
diff --git a/pystencils/gpucuda/kernelcreation.py b/pystencils/gpucuda/kernelcreation.py
index 3ac806e6cbc1838e2255b8cd12b057d238c0d5c8..12c7bd3c97dd8f8cc17f2641dbd442b615110082 100644
--- a/pystencils/gpucuda/kernelcreation.py
+++ b/pystencils/gpucuda/kernelcreation.py
@@ -3,18 +3,24 @@ from pystencils.data_types import BasicType, StructType, TypedSymbol
 from pystencils.field import Field, FieldType
 from pystencils.gpucuda.cudajit import make_python_function
 from pystencils.gpucuda.indexing import BlockIndexing
-from pystencils.math_optimizations import optims_pystencils_gpu, optimize_assignments
+from pystencils.math_optimizations import optimize_assignments, optims_pystencils_gpu
 from pystencils.transformations import (
     add_types, get_base_buffer_index, get_common_shape, parse_base_pointer_info,
     resolve_buffer_accesses, resolve_field_accesses, unify_shape_symbols)
 
 
-def create_cuda_kernel(assignments, function_name="kernel", type_info=None, indexing_creator=BlockIndexing,
-                       iteration_slice=None, ghost_layers=None, skip_independence_check=False, optimizations=None):
+def create_cuda_kernel(assignments,
+                       function_name="kernel",
+                       type_info=None,
+                       indexing_creator=BlockIndexing,
+                       iteration_slice=None,
+                       ghost_layers=None,
+                       skip_independence_check=False,
+                       sympy_optimizations=None):
 
-    if optimizations is None:
-        optimizations = optims_pystencils_gpu
-    assignments = optimize_assignments(assignments, optimizations)
+    if sympy_optimizations is None:
+        sympy_optimizations = optims_pystencils_gpu
+    assignments = optimize_assignments(assignments, sympy_optimizations)
 
     fields_read, fields_written, assignments = add_types(assignments, type_info, not skip_independence_check)
     all_fields = fields_read.union(fields_written)
@@ -92,11 +98,16 @@ def create_cuda_kernel(assignments, function_name="kernel", type_info=None, inde
     return ast
 
 
-def created_indexed_cuda_kernel(assignments, index_fields, function_name="kernel", type_info=None,
-                                coordinate_names=('x', 'y', 'z'), indexing_creator=BlockIndexing, optimizations=None):
-    if optimizations is None:
-        optimizations = optims_pystencils_gpu
-    assignments = optimize_assignments(assignments, optimizations)
+def created_indexed_cuda_kernel(assignments,
+                                index_fields,
+                                function_name="kernel",
+                                type_info=None,
+                                coordinate_names=('x', 'y', 'z'),
+                                indexing_creator=BlockIndexing,
+                                sympy_optimizations=None):
+    if sympy_optimizations is None:
+        sympy_optimizations = optims_pystencils_gpu
+    assignments = optimize_assignments(assignments, sympy_optimizations)
 
     fields_read, fields_written, assignments = add_types(assignments, type_info, check_independence_condition=False)
     all_fields = fields_read.union(fields_written)
diff --git a/pystencils/kernelcreation.py b/pystencils/kernelcreation.py
index ae84332cbe6739c34a17eba967bad77d5b402fed..79c3d04d10224b63733bbbc8b88c9ebb093e5ce6 100644
--- a/pystencils/kernelcreation.py
+++ b/pystencils/kernelcreation.py
@@ -15,7 +15,7 @@ from pystencils.transformations import (
 def create_kernel(assignments, target='cpu', data_type="double", iteration_slice=None, ghost_layers=None,
                   skip_independence_check=False,
                   cpu_openmp=False, cpu_vectorize_info=None, cpu_blocking=None,
-                  gpu_indexing='block', gpu_indexing_params=MappingProxyType({}), optimizations=None):
+                  gpu_indexing='block', gpu_indexing_params=MappingProxyType({}), sympy_optimizations=None):
     """
     Creates abstract syntax tree (AST) of kernel, using a list of update equations.
 
@@ -75,7 +75,7 @@ def create_kernel(assignments, target='cpu', data_type="double", iteration_slice
         from pystencils.cpu import add_openmp
         ast = create_kernel(assignments, type_info=data_type, split_groups=split_groups,
                             iteration_slice=iteration_slice, ghost_layers=ghost_layers,
-                            skip_independence_check=skip_independence_check, optimizations=optimizations)
+                            skip_independence_check=skip_independence_check, sympy_optimizations=sympy_optimizations)
         omp_collapse = None
         if cpu_blocking:
             omp_collapse = loop_blocking(ast, cpu_blocking)
@@ -91,15 +91,21 @@ def create_kernel(assignments, target='cpu', data_type="double", iteration_slice
         return ast
     elif target == 'llvm':
         from pystencils.llvm import create_kernel
-        ast = create_kernel(assignments, type_info=data_type, split_groups=split_groups,
-                            iteration_slice=iteration_slice, ghost_layers=ghost_layers, optimizations=optimizations)
+        ast = create_kernel(assignments,
+                            type_info=data_type,
+                            split_groups=split_groups,
+                            iteration_slice=iteration_slice,
+                            ghost_layers=ghost_layers,
+                            sympy_optimizations=sympy_optimizations)
         return ast
     elif target == 'gpu':
         from pystencils.gpucuda import create_cuda_kernel
         ast = create_cuda_kernel(assignments, type_info=data_type,
                                  indexing_creator=indexing_creator_from_params(gpu_indexing, gpu_indexing_params),
-                                 iteration_slice=iteration_slice, ghost_layers=ghost_layers,
-                                 skip_independence_check=skip_independence_check, optimizations=optimizations)
+                                 iteration_slice=iteration_slice,
+                                 ghost_layers=ghost_layers,
+                                 skip_independence_check=skip_independence_check,
+                                 sympy_optimizations=sympy_optimizations)
         return ast
     else:
         raise ValueError("Unknown target %s. Has to be one of 'cpu', 'gpu' or 'llvm' " % (target,))
@@ -107,7 +113,7 @@ def create_kernel(assignments, target='cpu', data_type="double", iteration_slice
 
 def create_indexed_kernel(assignments, index_fields, target='cpu', data_type="double", coordinate_names=('x', 'y', 'z'),
                           cpu_openmp=True, gpu_indexing='block', gpu_indexing_params=MappingProxyType({}),
-                          optimizations=None):
+                          sympy_optimizations=None):
     """
     Similar to :func:`create_kernel`, but here not all cells of a field are updated but only cells with
     coordinates which are stored in an index field. This traversal method can e.g. be used for boundary handling.
@@ -151,7 +157,7 @@ def create_indexed_kernel(assignments, index_fields, target='cpu', data_type="do
         from pystencils.cpu import create_indexed_kernel
         from pystencils.cpu import add_openmp
         ast = create_indexed_kernel(assignments, index_fields=index_fields, type_info=data_type,
-                                    coordinate_names=coordinate_names, optimizations=optimizations)
+                                    coordinate_names=coordinate_names, sympy_optimizations=sympy_optimizations)
         if cpu_openmp:
             add_openmp(ast, num_threads=cpu_openmp)
         return ast
@@ -162,14 +168,14 @@ def create_indexed_kernel(assignments, index_fields, target='cpu', data_type="do
         idx_creator = indexing_creator_from_params(gpu_indexing, gpu_indexing_params)
         ast = created_indexed_cuda_kernel(assignments, index_fields, type_info=data_type,
                                           coordinate_names=coordinate_names, indexing_creator=idx_creator,
-                                          optimizations=optimizations)
+                                          sympy_optimizations=sympy_optimizations)
         return ast
     else:
         raise ValueError("Unknown target %s. Has to be either 'cpu' or 'gpu'" % (target,))
 
 
 def create_staggered_kernel(staggered_field, expressions, subexpressions=(), target='cpu',
-                            gpu_exclusive_conditions=False, optimizations=None, **kwargs):
+                            gpu_exclusive_conditions=False, sympy_optimizations=None, **kwargs):
     """Kernel that updates a staggered field.
 
     .. image:: /img/staggered_grid.svg
@@ -256,8 +262,7 @@ def create_staggered_kernel(staggered_field, expressions, subexpressions=(), tar
     ast = create_kernel(final_assignments,
                         ghost_layers=ghost_layers,
                         target=target,
-                        optimizations=optimizations,
-
+                        sympy_optimizations=sympy_optimizations,
                         **kwargs)
 
     if target == 'cpu':
diff --git a/pystencils/llvm/kernelcreation.py b/pystencils/llvm/kernelcreation.py
index 1bffaa845d982722dbba0d7b87a6dd9d6f86355a..86f26ef6f388d95446f323b5c8965b0d90ff15af 100644
--- a/pystencils/llvm/kernelcreation.py
+++ b/pystencils/llvm/kernelcreation.py
@@ -3,7 +3,7 @@ from pystencils.transformations import insert_casts
 
 
 def create_kernel(assignments, function_name="kernel", type_info=None, split_groups=(),
-                  iteration_slice=None, ghost_layers=None, optimizations=None):
+                  iteration_slice=None, ghost_layers=None, sympy_optimizations=None):
     """
     Creates an abstract syntax tree for a kernel function, by taking a list of update rules.
 
@@ -32,7 +32,7 @@ def create_kernel(assignments, function_name="kernel", type_info=None, split_gro
                          split_groups,
                          iteration_slice,
                          ghost_layers,
-                         optimizations=optimizations)
+                         sympy_optimizations=sympy_optimizations)
     code.body = insert_casts(code.body)
     code._compile_function = make_python_function
     code._backend = 'llvm'
diff --git a/pystencils_tests/test_sympy_optimizations.py b/pystencils_tests/test_sympy_optimizations.py
index 080205e3aecade863b26c1bd4c7227fe3e111c22..ff3b0fbbdeb26bd79014a89c2b61e13de4173e9e 100644
--- a/pystencils_tests/test_sympy_optimizations.py
+++ b/pystencils_tests/test_sympy_optimizations.py
@@ -48,7 +48,7 @@ def test_do_not_evaluate_constant_terms():
             x[0, 0]: -sp.cos(1) + y[0, 0]
         })
 
-        ast = pystencils.create_kernel(assignments, target=target, optimizations=optimizations)
+        ast = pystencils.create_kernel(assignments, target=target, sympy_optimizations=optimizations)
         code = str(pystencils.show_code(ast))
         assert 'cos(' in code
         print(code)