diff --git a/.gitignore b/.gitignore
index 22dde614f696e27315f2c7d719f3a26b92be401b..01306d4cd381e506cf397a21ad90858f0266c453 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
 .RData
 .Ruserdata
 packrat/lib*/
+inst/doc
diff --git a/examples/square_1x1_quad8_1e2.vtu b/examples/square_1x1_quad8_1e2.vtu
deleted file mode 100644
index 32a0c26bd0dc9a87fa9d9075370f82e41e0058a3..0000000000000000000000000000000000000000
--- a/examples/square_1x1_quad8_1e2.vtu
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
-  <UnstructuredGrid>
-    <Piece NumberOfPoints="341" NumberOfCells="100">
-      <PointData>
-      </PointData>
-      <CellData>
-      </CellData>
-      <Points>
-        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary" RangeMin="0" RangeMax="1.4142135624">
-          AQAAAACAAAD4HwAAAwQAAA==eJx1WEuK3TAQnDsl+9wmd0pu8I6Q9awEEzAEBgRZvEEhWDgYHSHMM81QP+1ULlqtakvq7qcnP75/ex8/vni8Cf7pMX4Ffhf8GvdgZwj+9TH+BvtT8J8v7+NfWHcFXPddc483wUsHz++CX+Me7AzBSwdvfwpeOvh1V8A1zqgD401w1IH5XXDUge0MwVEHtj8FRx143RVw/a9LB483wWvu+V3w0sHbGYKXDt7+FLx08OuugOs5xv+B8SY4/g/M74KXDt7OEBz/B7Y/Bcf/gdddAf/wi3XweBMc9WV+FxznbGcIjvck25+C4z3J666A6z2N54LxJjieC+Z3wcsPb2cIjueC7U/B8Vzwuivg+i6VDh5vgpcOnt8FLx28nSF4zb39KXjp4NddAdd3GO8HxpvgeD8wvwteOng7Q3C8H9j+FBzvB153BVzzjtLB403w0sHzu+Clg7czBC8dvP0peM39uivgH99ZB483wfGeZH4XvHTwdobg+B+z/Sk47pPXXcHOLeii3z8//HwO56rOEdvbYt7G/Gu/rzG/Yf61398xD2D+NX+L7yXzH+Zf/sR3xe93j/ev1/OI95TX54zn2fuzgg63mFdznGue6g7/X2yxHmF+xT3VKcyvuKf6hfkV91TXML/inuodv9891kFezyPWR16fM9ZN3p8VdKi4ax1xjS3EXess5tc81V/Mx7hrXcZ8jLvWa8zHuGsdx3yMu9Z3fr+78PHeZj2P4P8M+pzCx3ue/VlBh1usm/jerbgzH/NGvqe3WG8yv+bMxzzzVeLu7XfhV9z9fu/Cr7h7f0bY7x7rXK/nEetfr88Z62Lvzwo61HnXOpHfTzzvWkf793YL/CZ8PO9adzMfz7vW48zH8651OvPxvGv97ve7Cx/zVdbzCP7PoM8pfMxv2Z8VdKj3XutizoPwndC+gc+btsBvwsf/UvsMzMf9aP+B+TjXvgTzMa/TfoXf7y58zOtYzyP4P4M+p/Axr2N/VtDhFvsAnM/iPa99Ep//brF/wny857Wvwny857Xfwny857UPw3y857U/4/e7x76N1/OI/Ryvzxn7PN6fFXS4xb5H7QP9fA79lsrruI7ZYr+I+RV35uN7tkvcvf0u/Iq73+9d+KWX92eE/e6xT8X8irv3fwZ9ztjX8v6soEO979rn4foS33ftg/l6dAv8Jnx837Vvxnx837Wfxnx837XPxnx837X/5ve7C7/i5PU8gv8z6HMKH+s49mcFHW6xr4XvyUfcU9+P+dfYYj+Q+RX31CdkfsU99Q+ZX3FPfUXmV9xTv9Hvd499SK/nEfuTXp8z9i29PyvoUHndkvgyfo1N8IoX45h3cZ/wTXB8h3jdPfh5BH9Owf8Dtpa8yQ==
-        </DataArray>
-      </Points>
-      <Cells>
-        <DataArray type="Int64" Name="connectivity" format="binary" RangeMin="0" RangeMax="340">
-          AQAAAACAAAAAGQAAuwQAAA==eJxdl0XUkFUYBvno7s6f7u7+aUFsVGxssRW7JezuFluxMcDG7ha7G7u7Fj6z+OZuZvXMas57zq1S5f9XhPXDeuHB4WHhKeEh2lUNG8hzaHhEeJp87KqFDeU5PDwqPEM+dtXDRvIcGS4Mz5KPXY2wsTxHh4vDc+RjVzNsIs+i8JjwPPnY1QqbyrMkPC68QD52tcNm8hwbnhBeJB+7OmFzeY4PTwovkY9d3bCFPCeGJ4dL5aMzemkVtgzp7fTwivBU7eiltTz0dmZ4lXzs6KWNPPR2dniNfOzopa089HZueJ187OilnTz0dn54vXzs6KW9PPR2YXijfOzopYM89HZxeLN87Oilozz0dml4q3zs6KWTPPR2WXibfOzorkKepeHl4R3y0Rm9dAk7h/R2dbgyvFI7eukqD71dG94tHzt66SYPvS0L75WPHb10l4febgjvl48dvfSQh95uClfJx45eespDb7eED8nHjl56yUNvy8NH5GNHL73lobfbw8fkY0cvfeShtzvDJ+RjVxH2lYfeVoRPyUdn9NI/7BfS2z3hs+Fd2tHLAHno7b7wefnY0ctAeejtgfBF+djRyyB56O3B8GX52NHLYHlWhQ+Hq+VjRy9D5KG3R8PX5GNHL0PlobfHwzfkY0cvw+ShtyfDt+RjRy/D5aG3p8N35GNHdyPkobdnwvfkozN6GRWODOnthfDD8Dnt6GW0PPT2UvixfOzoZYw89PZK+Kl87OhlrDz09mr4uXzs6GWcPPT2eviFfOzoZbw89PZm+JV87Ohlgjz09nb4jXzs6GWiPPT2bvidfOzopVIeens//EE+dnQ3SR56+yD8ST46o5cp4eSQ3j4Jfw0/0o5epspDb5+Fv8vHjl6myUNva8I/5WNHL9Plobcvw7/lY0cvM+Sht6/Df+VjRy9ryUNv34ZFUfaxo5eZ8tDb92G1ouxjRy+z5KG3H8MaRdnHrjJcWx56+zmsVZR97Ohutjz09ktYpyj76Ixe1g3XCentj7B+9r9pRy/ryUNvf4UNi7KPHb2sLw+9/RM2Lso+dvSygTz0xke9aVH2saOXDeWht6rZNefDX5R39LKRPPRWPWxZlH3s6GWOPPRWM2wtHzt62VgeeqsdtpWPHb1sIg+91Q3by8eO7jaVh97qhR3lozN62SycG9Jbo7Bz2KAo7+hlc3norUnYVT529LKFPPTWLOwuHzt62VIeemsR9pSPHb1sJQ+9tQp7y8eOXraWh97ahH3lY0cv28hDb+3C/vKxo5d58tBbh3CgfOzoZVt56K1TOFg+dnS3nTz0VhEOlY/O6GWHcPuQ3rqFI8IuRXlHLzvKQ289wlHysaOXneSht17hGPnY0cvO8tBbn3CcfOzoZRd56K1fOEE+dvQyXx56GxBWyseOXnaVh94GhZPlYzcv3E0eehsSTpWPHb3sLg+9DQuny8eO7vaQh96Gc+/lozN62SvcM6S30dzbcGRR3tHL3vLQ29hwtnzs6GUfeehtPPdaPnb0sq889DaRey0fO3pZIA+9TeJey8eOXvaTh96mcK/lY0cv+8tDb9O41/Kxo5cD5KG3Gdxr+djRy4Hy0NtM7rV87OjuIHnobRb3Wr7/ABCELb4=
-        </DataArray>
-        <DataArray type="Int64" Name="offsets" format="binary" RangeMin="8" RangeMax="800">
-          AQAAAACAAAAgAwAApgAAAA==eJwtxRFghAAAAMC2SRiGYRg+huFjGIZhGIZh+BiGYRiGYfgYhoPu5MLgETl24tSZX85d+O3SlWs3bt259+DRH0+evXj15t2HT399+Xbw8xQ6cuzEqTO/nLvw26Ur127cunPvwaM/njx78erNuw+f/vry7eD3KXTk2IlTZ345d+G3S1eu3bh1596DR388efbi1Zt3Hz799eXbwd9T6MixE/8DLbMvQA==
-        </DataArray>
-        <DataArray type="UInt8" Name="types" format="binary" RangeMin="23" RangeMax="23">
-          AQAAAACAAABkAAAADAAAAA==eJwTF6c9AADGKQj9
-        </DataArray>
-        <DataArray type="Int64" Name="faces" format="binary" RangeMin="0" RangeMax="0">
-          AQAAAACAAAAgAwAAEAAAAA==eJxjYBgFo2AU4AIAAyAAAQ==
-        </DataArray>
-        <DataArray type="Int64" Name="faceoffsets" format="binary" RangeMin="1" RangeMax="100">
-          AQAAAACAAAAgAwAArwAAAA==eJwtxdciAgAAAEAjkYRskazskpUtFJGRUbYI//8NHrp7ueamhha3OuA2B93uDofc6bC7HHG3e9zrqPvc7wEPesjDHvGoYx7zuOOecMKTnvK0ZzzrpOc87wUvesnLXnHKaa864zWve8Ob3nLW297xrve87wMf+sg5H/vEp8674DOfu+gLX7rkK1/7xrcu+873fvCjK676yc9+8avf/O4Pf7rmL3+77h//+s//+ewTuw==
-        </DataArray>
-      </Cells>
-    </Piece>
-  </UnstructuredGrid>
-</VTKFile>
diff --git a/examples/test_r2ogs6.R b/examples/test_r2ogs6.R
deleted file mode 100644
index 708d034101a167ca3bb464809de6a9f7baa39474..0000000000000000000000000000000000000000
--- a/examples/test_r2ogs6.R
+++ /dev/null
@@ -1,234 +0,0 @@
-detach("package:r2ogs6", unload=TRUE)
-library(r2ogs6)
-
-
-#This is where the user defines their data.
-
-#============================== SET UP SIMULATION OBJECT ================================
-
-#If you want to test this, don't forget to alter the paths to fit your system!
-
-#First, we need to create a simulation object.
-
-ogs6_obj <- OGS6$new(sim_name = "my_sim",
-                     sim_id = 1,
-                     sim_path = "D:\\OGS_Sim\\",
-                     ogs_bin_path = "D:\\Programme\\OpenGeoSys\\ogs-6.3.2-Windows-10.0.14393-x64-python-3.7.2-de-utils\\bin\\")
-
-
-#============================== ADD .gml DATA ================================
-
-#(source: HydroComponent Benchmarks -> IdealGas -> flow_no_strain -> square_1x1.gml)
-
-#Add some geometry
-input_add(r2ogs6_gml(name = "square_1x1_geometry",
-                     points = tibble::tibble(x = c(0, 0, 1, 1),
-                                             y = c(0, 1, 0, 1),
-                                             z = c(0, 0, 0, 0),
-                                             name = c("origin", rep("", 3))),
-                     polylines = list(list(name = "left", c(0, 1)),
-                                      list(name = "right", c(2, 3)),
-                                      list(name = "bottom", c(0, 2)),
-                                      list(name = "top", c(1, 3)))),
-          ogs6_obj)
-
-#============================== ADD .vtu DATA ================================
-
-#Let's add our data for the .vtk file, which contains information about our mesh.
-
-# #This calls an external script (which is why we needed to specify some paths earlier)
-# generate_structured_mesh(ogs6_obj, "-e quad --lx 1 --ly 1 --lz 1")
-
-#To make sure our geometry is right, let's copy the .vtu from the benchmark
-# we're trying to reverse engineer...
-
-pick_file(ogs6_obj)
-
-
-#============================== ADD .prj DATA ================================
-
-#Let's add our data for the .prj file, arguably the most important file.
-#(source: HydroComponent Benchmarks -> IdealGas -> flow_no_strain -> flow_no_strain.prj)
-
-#We need:
-#1. Either one mesh and one geometry file OR multiple mesh files (for the latter case: Skip to
-# previous part and call generate_structured_mesh at least one more time)
-
-#2. One or more process elements:
-input_add(r2ogs6_process(name = "HM",
-                         type = "HYDRO_MECHANICS",
-                         integration_order = 3,
-                         dimension = 2,
-                         constitutive_relation = c(type = "LinearElasticIsotropic",
-                                                   youngs_modulus = "E",
-                                                   poissons_ratio = "nu"),
-                         process_variables = c(displacement = "displacement",
-                                               pressure = "pressure"),
-                         secondary_variables = list(c("sigma_xx", "sigma_xx"),
-                                                    c("sigma_yy", "sigma_yy"),
-                                                    c("sigma_zz", "sigma_zz"),
-                                                    c("sigma_xy", "sigma_xy"),
-                                                    c("epsilon_xx", "epsilon_xx"),
-                                                    c("epsilon_yy", "epsilon_yy"),
-                                                    c("epsilon_zz", "epsilon_zz"),
-                                                    c("epsilon_xy", "epsilon_xy"),
-                                                    c("velocity", "velocity")),
-                         specific_body_force = c(0, 0)),
-          ogs6_obj)
-
-#3. One time_loop element:
-input_add(r2ogs6_time_loop(processes = list(r2ogs6_tl_process(ref = "HM",
-                                                              nonlinear_solver = "basic_newton",
-                                                              convergence_criterion = list(type = "PerComponentDeltaX",
-                                                                                           norm_type = "NORM2",
-                                                                                           reltols = "5e-8 1e10 1e10"),
-                                                              time_discretization = list(type = "BackwardEuler"),
-                                                              time_stepping = list(type = "FixedTimeStepping",
-                                                                                   t_initial = 0,
-                                                                                   t_end = 100,
-                                                                                   timesteps = list(pair = list(rep = 1,
-                                                                                                                delta_t = 0.1))
-                                                                                   )
-                                                              )),
-                           output = r2ogs6_tl_output(type = "VTK",
-                                                     prefix = "flow_no_strain_pcs_{:process_id}",
-                                                     suffix = "_ts_{:timestep}_t_{:time}",
-                                                     timesteps = list(pair = list(rep = 1,
-                                                                              each_steps = 1000)),
-                                                     variables = list("displacement",
-                                                                      "pressure",
-                                                                      "sigma_xx",
-                                                                      "sigma_yy",
-                                                                      "sigma_zz",
-                                                                      "sigma_xy",
-                                                                      "epsilon_xx",
-                                                                      "epsilon_yy",
-                                                                      "epsilon_zz",
-                                                                      "epsilon_xy",
-                                                                      "velocity"))),
-          ogs6_obj)
-
-#4. One or more medium elements:
-input_add(r2ogs6_medium(phases = list(r2ogs6_medium_phase(type = "Gas",
-                                                          properties = list(r2ogs6_medium_property(name = "viscosity",
-                                                                                                   type = "Constant",
-                                                                                                   value = 1e-5),
-                                                                            r2ogs6_medium_property(name = "density",
-                                                                                                   type = "IdealGasLaw"),
-                                                                            r2ogs6_medium_property(name = "molar_mass",
-                                                                                                   type = "Constant",
-                                                                                                   value = 0.028964397787206768))),
-                                      r2ogs6_medium_phase(type = "Solid",
-                                                          properties = list(r2ogs6_medium_property(name = "porosity",
-                                                                                                   type = "Constant",
-                                                                                                   value = 0.03),
-                                                                            r2ogs6_medium_property(name = "density",
-                                                                                                   type = "Constant",
-                                                                                                   value = 2.17e3),
-                                                                            r2ogs6_medium_property(name = "biot_coefficient",
-                                                                                                   type = "Constant",
-                                                                                                   value = 0.6)))),
-                        properties = list(r2ogs6_medium_property(name = "reference_temperature",
-                                                                 type = "Constant",
-                                                                 value = 293.15),
-                                          r2ogs6_medium_property(name = "permeability",
-                                                                 type = "Constant",
-                                                                 value = 1e-4))),
-          ogs6_obj)
-
-#5. One or more parameters:
-input_add(r2ogs6_parameter(name = "E",
-                           type = "Constant",
-                           values = 1e9),
-          ogs6_obj)
-
-input_add(r2ogs6_parameter(name = "nu",
-                           type = "Constant",
-                           values = .3),
-          ogs6_obj)
-
-input_add(r2ogs6_parameter(name = "displacement0",
-                           type = "Constant",
-                           values = c(0, 0)),
-          ogs6_obj)
-
-input_add(r2ogs6_parameter(name = "pressure0",
-                           type = "Constant",
-                           values = 1e5),
-          ogs6_obj)
-
-input_add(r2ogs6_parameter(name = "zero",
-                           type = "Constant",
-                           values = 0),
-          ogs6_obj)
-
-input_add(r2ogs6_parameter(name = "flux",
-                           type = "Constant",
-                           values = 1e-3),
-          ogs6_obj)
-
-
-#6. One or more process variables
-input_add(r2ogs6_process_variable(name = "displacement",
-                                  components = 2,
-                                  order = 2,
-                                  initial_condition = "displacement0",
-                                  boundary_conditions = list(r2ogs6_boundary_condition(type = "Dirichlet",
-                                                                                       parameter = "zero",
-                                                                                       component = 0,
-                                                                                       geometrical_set = "square_1x1_geometry",
-                                                                                       geometry = "left"),
-                                                             r2ogs6_boundary_condition(type = "Dirichlet",
-                                                                                       parameter = "zero",
-                                                                                       component = 1,
-                                                                                       geometrical_set = "square_1x1_geometry",
-                                                                                       geometry = "bottom"),
-                                                             r2ogs6_boundary_condition(type = "Dirichlet",
-                                                                                       parameter = "zero",
-                                                                                       component = 0,
-                                                                                       geometrical_set = "square_1x1_geometry",
-                                                                                       geometry = "right"),
-                                                             r2ogs6_boundary_condition(type = "Dirichlet",
-                                                                                       parameter = "zero",
-                                                                                       component = 1,
-                                                                                       geometrical_set = "square_1x1_geometry",
-                                                                                       geometry = "top"))),
-          ogs6_obj)
-
-input_add(r2ogs6_process_variable(name = "pressure",
-                                  components = 1,
-                                  order = 1,
-                                  initial_condition = "pressure0",
-                                  boundary_conditions = list(r2ogs6_boundary_condition(type = "Neumann",
-                                                                                       parameter = "flux",
-                                                                                       component = 0,
-                                                                                       geometrical_set = "square_1x1_geometry",
-                                                                                       geometry = "left")
-                                                             )
-                                  ),
-          ogs6_obj)
-
-#7. One or more nonlinear solvers
-input_add(r2ogs6_nonlinear_solver(name = "basic_newton",
-                                  type = "Newton",
-                                  max_iter = 50,
-                                  linear_solver = "general_linear_solver"),
-          ogs6_obj)
-
-#8. One or more linear solvers
-input_add(r2ogs6_linear_solver(name = "general_linear_solver",
-                               eigen = list(solver_type = "BiCGSTAB",
-                                            precon_type = "ILUT",
-                                            max_iteration_step = 10000,
-                                            error_tolerance = 1e-16),
-                               lis = "-i bicgstab -p ilu -tol 1e-16 -maxiter 10000"),
-          ogs6_obj)
-
-
-#OPTIONAL: A test definition
-
-#============================== Execution ================================
-
-#Calls ogs6 object validator functions, exports all necessary files and starts OpenGeoSys6
-
-run_simulation(ogs6_obj)