diff --git a/python/dune/codegen/options.py b/python/dune/codegen/options.py
index 724f80df6554a9d977bf21210fd044daf9644274..1a25ea867d7295f1d07eff3ac6de25d681963898 100644
--- a/python/dune/codegen/options.py
+++ b/python/dune/codegen/options.py
@@ -45,41 +45,6 @@ class CodegenGlobalOptionsArray(ImmutableRecord):
         opts.update(**kwargs)
         ImmutableRecord.__init__(self, **opts)
 
-    # Arguments that are to be set from the outside
-    uflfile = CodegenOption(helpstr="the UFL file to compile")
-    debug_cache_with_stack = CodegenOption(default=False, helpstr="Store stack along with cache objects. Makes debugging caching issues easier.")
-    driver_file = CodegenOption(helpstr="The filename for the generated driver header")
-    explicit_time_stepping = CodegenOption(default=False, helpstr="use explicit time stepping")
-    time_stepping_order = CodegenOption(default=1, helpstr="Order of the time stepping method")
-    exact_solution_expression = CodegenOption(helpstr="name of the exact solution expression in the ufl file")
-    compare_l2errorsquared = CodegenOption(helpstr="maximal allowed l2 error squared of difference between numerical solution and interpolation of exact solution (NOTE: requires --exact-solution-expression)")
-    grid_info = CodegenOption(default=None, helpstr="Path to file with information about facedir and facemod variations. This can be used to limit the generation of skeleton kernels.")
-    l2error_tree_path = CodegenOption(default=None, helpstr="Tree pathes that should be considered for l2 error calculation. Default None means we take all of them into account.")
-    ini_file = CodegenOption(helpstr="An inifile to use. A generated driver will be hard-coded to it, a [formcompiler] section will be used as default values to form compiler arguments (use snake case)")
-    opcounter = CodegenOption(default=False, helpstr="Count operations. Note: In this case only operator applications are generated since solving and operator counting does not work. You probably want to set instrumentation level>0.")
-    performance_measuring = CodegenOption(default=False, helpstr="Generate opcounter codepath, but only measure times!")
-    instrumentation_level = CodegenOption(default=0, helpstr="Control time/opcounter measurements. 0-do nothing, 1-measure program as a whole, 2-operator applications, 3-measure kernel (eg. alpha-volume, ...), 4-parts of kernel (eg. stage 1-3 of SF)")
-    project_basedir = CodegenOption(helpstr="The base (build) directory of the dune-codegen project")
-    architecture = CodegenOption(default="haswell", helpstr="The architecture to optimize for. Possible values: haswell|knl|skylake")
-    yaspgrid_offset = CodegenOption(default=False, helpstr="Set to true if you want a yasp grid where the lower left corner is not in the origin.")
-    grid_unstructured = CodegenOption(default=False, helpstr="Set to true if you want to use an unstructured grid.")
-    grid_consistent = CodegenOption(default=False, helpstr="The used grid is already consistent.")
-    precision_bits = CodegenOption(default=64, helpstr="The number of bits for the floating point type")
-    overlapping = CodegenOption(default=False, helpstr="Use an overlapping solver and constraints. You still need to make sure to construct a grid with overlap! The parallel option will be set automatically.")
-    operators = CodegenOption(default="r", helpstr="A comma separated list of operators, each name will be interpreted as a subsection name within the formcompiler section")
-    target_name = CodegenOption(default=None, helpstr="The target name from CMake")
-    operator_to_build = CodegenOption(default=None, helpstr="The operators from the list that is about to be build now. CMake sets this one!!!")
-    debug_interpolate_input = CodegenOption(default=False, helpstr="Should the input for printresidual and printmatix be interpolated (instead of random input).")
-    use_likwid = CodegenOption(default=False, helpstr="Use likwid instead of own performance measurements.")
-    use_sde = CodegenOption(default=False, helpstr="Use sde instead of own performance measurements.")
-    autotune_google_benchmark = CodegenOption(default=False, helpstr="Use google-benchmark library for autotuning (when autotuning is activated).")
-    with_mpi = CodegenOption(default=True, helpstr="The module was configured with mpi")
-    permuting_horizontal_add = CodegenOption(default=True, helpstr="Whether SIMD horizontal_add should use a permuting implementation.")
-
-    # Arguments that are mainly to be set by logic depending on other options
-    max_vector_width = CodegenOption(default=256, helpstr=None)
-    parallel = CodegenOption(default=False, helpstr="Mark that this program should be run in parallel. If set to true the c++ code will check that there are more than 1 MPI-ranks involved and the error computation will use communication.")
-
 
 class CodegenFormOptionsArray(ImmutableRecord):
     """ A collection of form-specific form compiler arguments """
@@ -90,59 +55,6 @@ class CodegenFormOptionsArray(ImmutableRecord):
         opts.update(**kwargs)
         ImmutableRecord.__init__(self, **opts)
 
-    # Form specific options
-    form = CodegenOption(default=None, helpstr="The name of the UFL object representing the form in the UFL file")
-    filename = CodegenOption(default=None, helpstr="The filename to use for this LocalOperator")
-    classname = CodegenOption(default=None, helpstr="The name of the C++ class to generate")
-    numerical_jacobian = CodegenOption(default=False, helpstr="use numerical jacobians (only makes sense, if uflpdelab for some reason fails to generate analytic jacobians)")
-    matrix_free = CodegenOption(default=False, helpstr="Generate jacobian_apply_* methods for matrix free solvers")
-    print_transformations = CodegenOption(default=False, helpstr="print out dot files after ufl tree transformations")
-    print_transformations_dir = CodegenOption(default=".", helpstr="place where to put dot files (can be omitted)")
-    quadrature_order = CodegenOption(_type=int, helpstr="Quadrature order used for all integrals.")
-    diagonal_transformation_matrix = CodegenOption(default=False, helpstr="set option if the jacobian of the transformation is diagonal (axiparallel grids)")
-    constant_transformation_matrix = CodegenOption(default=False, helpstr="set option if the jacobian of the transformation is constant on a cell")
-    fastdg = CodegenOption(default=False, helpstr="Use FastDGGridOperator from PDELab.")
-    sumfact = CodegenOption(default=False, helpstr="Use sumfactorization")
-    sumfact_regular_jacobians = CodegenOption(default=False, helpstr="Generate non sum-factorized jacobians (only useful if sumfact is set)")
-    sumfact_on_boundary = CodegenOption(default=True, helpstr="Whether boundary integrals should be vectorized. It might not be worth the hassle...")
-    sumfact_optimize_loop_order = CodegenOption(default=False, helpstr="Optimize order of loops in sumf factorization function using autotuning.")
-    sumfact_performance_transformations = CodegenOption(default=False, helpstr="Apply sum factorization specific performance transformations.")
-    sumfact_performance_transformations_testrun = CodegenOption(default=0, helpstr="If larger than zero determines test case to run.")
-    vectorization_quadloop = CodegenOption(default=False, helpstr="whether to generate code with explicit vectorization")
-    vectorization_strategy = CodegenOption(default="none", helpstr="The identifier of the vectorization cost model. Possible values: none|explicit|model|target|autotune")
-    vectorization_not_fully_vectorized_error = CodegenOption(default=False, helpstr="throw an error if nonquadloop vectorization did not fully vectorize")
-    vectorization_horizontal = CodegenOption(default=None, helpstr="an explicit value for horizontal vectorization read by the 'explicit' strategy")
-    vectorization_vertical = CodegenOption(default=None, helpstr="an explicit value for vertical vectorization read by the 'explicit' strategy")
-    vectorization_padding = CodegenOption(default=None, helpstr="an explicit value for the allowed padding in vectorization")
-    vectorization_allow_quadrature_changes = CodegenOption(default=False, helpstr="whether the vectorization strategy is allowed to alter quadrature point numbers")
-    vectorization_list_index = CodegenOption(default=None, helpstr="Which vectorization to pick from a list (only valid with vectorization_strategy=fromlist).")
-    vectorization_jacobians = CodegenOption(default=True, helpstr="Whether to attempt to vectorize jacobians (takes time, often not needed)")
-    vectorization_target = CodegenOption(_type=float, helpstr="The cost function target for the 'target' cost model. Only needed to verify the cost model itself, do not use light-heartedly!!!")
-    simplify = CodegenOption(default=False, helpstr="Whether to simplify expressions using sympy")
-    generate_jacobians = CodegenOption(default=True, helpstr="Whether jacobian_* methods should be generated. This is set to false automatically, when numerical_jacobian is set to true.")
-    generate_jacobian_apply = CodegenOption(default=False, helpstr="Wether jacobian_allpy_* methods should be generated.")
-    generate_residuals = CodegenOption(default=True, helpstr="Whether alpha_* methods should be generated.")
-    unroll_dimension_loops = CodegenOption(default=False, helpstr="whether loops over the geometric dimension should be unrolled")
-    blockstructured = CodegenOption(default=False, helpstr="Use block structure")
-    number_of_blocks = CodegenOption(default=1, helpstr="Number of sub blocks in one direction")
-    vectorization_blockstructured = CodegenOption(default=False, helpstr="Vectorize block structuring")
-    vectorization_blockstructured_tail = CodegenOption(default=True, helpstr="Try to fully vectorize block structuring even when 'nunmber_of_blocks' is not divisible by vector length")
-    vectorization_blockstructured_tail_ordering = CodegenOption(default='consecutive', helpstr="Ordering of the tail w.r.t the vectorized loop. Possible values: consecutive|blocked")
-    adjoint = CodegenOption(default=False, helpstr="Generate adjoint operator")
-    control = CodegenOption(default=False, helpstr="Generate operator of derivative w.r.t. the control variable")
-    objective_function = CodegenOption(default=None, helpstr="Name of form representing the objective function in UFL file")
-    control_variable = CodegenOption(default=None, helpstr="Name of control variable in UFL file")
-    block_preconditioner_diagonal = CodegenOption(default=False, helpstr="Whether this operator should implement the diagonal part of a block preconditioner")
-    block_preconditioner_offdiagonal = CodegenOption(default=False, helpstr="Whether this operator should implement the off-diagonal part of a block preconditioner")
-    block_preconditioner_pointdiagonal = CodegenOption(default=False, helpstr="Whether this operator should implement the point diagonal part of a block preconditioner")
-    geometry_mixins = CodegenOption(default="generic", helpstr="A comma separated list of mixin identifiers to use for geometries. Currently implemented mixins: generic, axiparallel, equidistant, sumfact_multilinear, sumfact_axiparallel, sumfact_equidistant")
-    quadrature_mixins = CodegenOption(default="generic", helpstr="A comma separated list of mixin identifiers to use for quadrature. Currently implemented: generic, sumfact")
-    basis_mixins = CodegenOption(default="generic", helpstr="A comma separated list of mixin identifiers to use for basis function evaluation. Currently implemented: generic, sumfact")
-    accumulation_mixins = CodegenOption(default="generic", helpstr="A comma separated list of mixin identifiers to use for accumulation. Currently implemented: generic, sumfact, control, blockstructured")
-    enable_volume = CodegenOption(default=True, helpstr="Whether to assemble volume integrals")
-    enable_skeleton = CodegenOption(default=True, helpstr="Whether to assemble skeleton integrals")
-    enable_boundary = CodegenOption(default=True, helpstr="Whether to assemble boundary integrals")
-
 
 # Until more sophisticated logic is needed, we keep the actual option data in this module
 _global_options = CodegenGlobalOptionsArray()
diff --git a/python/dune/codegen/options_form.yaml b/python/dune/codegen/options_form.yaml
index d8c3836972fb8f1e2e2e6973f82b31dd9fefbd97..97c0a733a327718009d25eaa32486747d21cfaa4 100644
--- a/python/dune/codegen/options_form.yaml
+++ b/python/dune/codegen/options_form.yaml
@@ -18,6 +18,10 @@ block_preconditioner_offdiagonal:
     type: boolean
     default: False
     helpstr: "Whether this operator should implement the off-diagonal part of a block preconditioner"
+block_preconditioner_pointdiagonal:
+    type: boolean
+    default: False
+    helpstr: "Whether this operator should implement the point diagonal part of a block preconditioner"
 blockstructured:
     type: boolean
     default: False
diff --git a/python/dune/codegen/options_global.yaml b/python/dune/codegen/options_global.yaml
index 6af896e7a444cf4bd07ec90017311c36456243d6..4db7aa253ae8e58810a25da9904622ca2f671cf9 100644
--- a/python/dune/codegen/options_global.yaml
+++ b/python/dune/codegen/options_global.yaml
@@ -33,6 +33,10 @@ explicit_time_stepping:
     type: boolean
     default: False
     helpstr: "use explicit time stepping"
+grid_consistent:
+    type: boolean
+    default: False
+    helpstr: "The used grid is already consistent"
 grid_info:
     type: string
     default:
@@ -77,6 +81,10 @@ performance_measuring:
     type: boolean
     default: False
     helpstr: "Generate opcounter codepath, but only measure times!"
+permuting_horizontal_add:
+    type: boolean
+    default: True
+    helpstr: "Whether SIMD horizontal_add should use a permuting implementation."
 precision_bits:
     type: integer
     default: 64
@@ -91,6 +99,10 @@ target_name:
     default:
     nullable: True
     helpstr: "The target name from CMake"
+time_stepping_order:
+    type: integer
+    default: 1
+    helpstr: "Order of the time stepping method"
 uflfile:
     type: string
     default:
@@ -100,6 +112,14 @@ use_likwid:
     type: boolean
     default: False
     helpstr: "Use likwid instead of own performance measurements."
+use_sde:
+    type: boolean
+    default: False
+    helpstr: "Use sde instead of own performance measurements."
+with_mpi:
+    type: boolean
+    default: True
+    helpstr: "The module was configured with mpi"
 yaspgrid_offset:
     type: boolean
     default: False