diff --git a/examples/main.c b/examples/main.c
index d99dec04b59f9d096d154620036a6da4a73f5931..fe93bc4d7d6f69ec7d505f109292661ddcbfd4dc 100644
--- a/examples/main.c
+++ b/examples/main.c
@@ -1006,7 +1006,7 @@ int main(int argc, char *argv[]) {
     /* Initialise the particles */
     engine_init_particles(&e, flag_entropy_ICs, clean_smoothing_length_values);
 
-  /* Write the state of the system before starting time integration. */
+    /* Write the state of the system before starting time integration. */
 #ifdef WITH_LOGGER
     logger_ensure_size(e.log, e.total_nr_parts, e.total_nr_gparts, 0);
     logger_log_all(e.log, &e);
diff --git a/src/cell.h b/src/cell.h
index a95e0f2226f8fd54ae5fab536208990cccd73189..6aae833250958707cd7933478929ad54d17246db 100644
--- a/src/cell.h
+++ b/src/cell.h
@@ -279,9 +279,6 @@ struct cell {
     /*! Values of h_max before the drifts, used for sub-cell tasks. */
     float h_max_old;
 
-    /*! The logger task */
-    struct task *logger;
-
     /*! The task to compute time-steps */
     struct task *timestep;
 
@@ -556,6 +553,9 @@ struct cell {
   /*! Task for source terms */
   struct task *sourceterms;
 
+  /*! The logger task */
+  struct task *logger;
+
   /*! Minimum dimension, i.e. smallest edge of this cell (min(width)). */
   float dmin;
 
diff --git a/src/dump.c b/src/dump.c
index bc57e7783287d792e32ade6d667df0568bae5d6c..5824b7081f6f7958e68bd526996eb6adffdad8b7 100644
--- a/src/dump.c
+++ b/src/dump.c
@@ -49,14 +49,12 @@
 void *dump_get(struct dump *d, size_t count, size_t *offset) {
   size_t local_offset = atomic_add(&d->count, count);
 #ifdef SWIFT_DEBUG_CHECKS
-  if (d->count > d->size)
-    error("A new dump file should have been created.");
+  if (d->count > d->size) error("A new dump file should have been created.");
 #endif
   *offset = local_offset + d->file_offset;
   return (char *)d->data + local_offset;
 }
 
-
 /**
  * @brief Ensure that at least size bytes are available in the #dump.
  */
@@ -86,7 +84,7 @@ void dump_ensure(struct dump *d, size_t size) {
   if ((d->data = mmap(NULL, d->size, PROT_WRITE, MAP_SHARED, d->fd,
                       d->file_offset)) == MAP_FAILED) {
     error("Failed to allocate map of size %zi bytes (%s).", d->size,
-	  strerror(errno));
+          strerror(errno));
   }
 }
 
diff --git a/src/engine.c b/src/engine.c
index 03c0af95dd2726be559710bab8f1f9a1e836c966..45d4836345fec07fc91986e1ce5669424f3ad842 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -115,8 +115,7 @@ const char *engine_policy_names[] = {"none",
                                      "structure finding",
                                      "star formation",
                                      "feedback",
-				     "logger"
-};
+                                     "logger"};
 
 /** The rank of the engine as a global variable (for messages). */
 int engine_rank;
@@ -233,10 +232,9 @@ void engine_make_hierarchical_tasks_common(struct engine *e, struct cell *c) {
                                    c, NULL);
 
 #if defined(WITH_LOGGER)
-	c->logger = scheduler_addtask(s, task_type_logger, task_subtype_none, 0, 0,
-				      c, NULL);
+      c->logger = scheduler_addtask(s, task_type_logger, task_subtype_none, 0,
+                                    0, c, NULL);
 #endif
-	
 
       c->kick2 = scheduler_addtask(s, task_type_kick2, task_subtype_none, 0, 0,
                                    c, NULL);
@@ -277,7 +275,7 @@ void engine_make_hierarchical_tasks_common(struct engine *e, struct cell *c) {
 #if defined(WITH_LOGGER)
       scheduler_addunlock(s, c->kick1, c->logger);
 #endif
-}
+    }
 
   } else { /* We are above the super-cell so need to go deeper */
 
@@ -4260,7 +4258,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
     /* logger tasks ? */
     else if (t->type == task_type_logger) {
       if (cell_is_active_hydro(t->ci, e) || cell_is_active_gravity(t->ci, e))
-	scheduler_activate(s, t);
+        scheduler_activate(s, t);
     }
 
     /* Gravity stuff ? */
@@ -5215,10 +5213,9 @@ void engine_init_particles(struct engine *e, int flag_entropy_ICs,
 
 #ifdef WITH_LOGGER
   logger_log_timestamp(e->log, e->ti_current, &e->log->timestamp_offset);
-  logger_ensure_size(e->log, e->total_nr_parts, e->total_nr_gparts,
-		     0);
+  logger_ensure_size(e->log, e->total_nr_parts, e->total_nr_gparts, 0);
 #endif
-  
+
   /* Now, launch the calculation */
   TIMER_TIC;
   engine_launch(e);
@@ -5470,8 +5467,7 @@ void engine_step(struct engine *e) {
 
 #ifdef WITH_LOGGER
   logger_log_timestamp(e->log, e->ti_current, &e->log->timestamp_offset);
-  logger_ensure_size(e->log, e->total_nr_parts, e->total_nr_gparts,
-		     0);
+  logger_ensure_size(e->log, e->total_nr_parts, e->total_nr_gparts, 0);
 #endif
 
   /* Are we drifting everything (a la Gadget/GIZMO) ? */
@@ -5625,9 +5621,9 @@ void engine_check_for_dumps(struct engine *e) {
         /* Dump everything */
         engine_print_stats(e);
 #ifdef WITH_LOGGER
-	engine_dump_index(e);
+        engine_dump_index(e);
 #else
-	engine_dump_snapshot(e);
+        engine_dump_snapshot(e);
 #endif
 
       } else if (e->ti_next_stats < e->ti_next_snapshot) {
@@ -5659,9 +5655,9 @@ void engine_check_for_dumps(struct engine *e) {
 
         /* Dump snapshot */
 #ifdef WITH_LOGGER
-	engine_dump_index(e);
+        engine_dump_index(e);
 #else
-	engine_dump_snapshot(e);
+        engine_dump_snapshot(e);
 #endif
 
       } else if (e->ti_next_stats > e->ti_next_snapshot) {
@@ -5681,9 +5677,9 @@ void engine_check_for_dumps(struct engine *e) {
 
         /* Dump snapshot */
 #ifdef WITH_LOGGER
-	engine_dump_index(e);
+        engine_dump_index(e);
 #else
-	engine_dump_snapshot(e);
+        engine_dump_snapshot(e);
 #endif
 
         /* Let's fake that we are at the stats dump time */
@@ -6484,8 +6480,8 @@ void engine_dump_snapshot(struct engine *e) {
                       MPI_INFO_NULL);
 #endif
 #else
-    write_output_single(e, e->snapshot_base_name, e->internal_units,
-			e->snapshot_units);
+  write_output_single(e, e->snapshot_base_name, e->internal_units,
+                      e->snapshot_units);
 #endif
 #endif
 
@@ -6524,7 +6520,7 @@ void engine_dump_index(struct engine *e) {
 
   /* Dump... */
   write_index_single(e, e->log->base_name, e->internal_units,
-		     e->snapshot_units);
+                     e->snapshot_units);
 
   e->dump_snapshot = 0;
 
@@ -6702,9 +6698,8 @@ void engine_init(struct engine *e, struct space *s, struct swift_params *params,
   e->last_repartition = 0;
 #endif
 
-
 #if defined(WITH_LOGGER)
-  e->log = (struct logger *) malloc(sizeof(struct logger));
+  e->log = (struct logger *)malloc(sizeof(struct logger));
   logger_init(e->log, params);
 #endif
 
@@ -7166,8 +7161,9 @@ void engine_config(int restart, struct engine *e, struct swift_params *params,
 
 #if defined(WITH_LOGGER)
   if (e->nodeID == 0)
-    message("WARNING: There is currently no way of predicting the output "
-	    "size, please use it carefully");
+    message(
+        "WARNING: There is currently no way of predicting the output "
+        "size, please use it carefully");
 #endif
 
   /* Find the time of the first snapshot output */
diff --git a/src/gravity/Default/gravity.h b/src/gravity/Default/gravity.h
index 167d2be8618dd7250018915f18a36db656482c00..d446844e8ffc862fd3be0688302ebb3a2efab8fa 100644
--- a/src/gravity/Default/gravity.h
+++ b/src/gravity/Default/gravity.h
@@ -28,7 +28,6 @@
 #include "kernel_gravity.h"
 #include "minmax.h"
 
-
 /**
  * @brief Returns the mass of a particle
  *
@@ -147,7 +146,6 @@ __attribute__((always_inline)) INLINE static void gravity_init_gpart(
   gp->a_grav[0] = 0.f;
   gp->a_grav[1] = 0.f;
   gp->a_grav[2] = 0.f;
-  gp->last_output = SHRT_MAX;
 
 #ifdef SWIFT_GRAVITY_FORCE_CHECKS
   gp->potential_PM = 0.f;
diff --git a/src/hydro/Gadget2/hydro.h b/src/hydro/Gadget2/hydro.h
index 892fb4dd9bff6549925ce6172a94053eea62a963..98dcad4f39a5621bde8e085bc3bc06f060832958 100644
--- a/src/hydro/Gadget2/hydro.h
+++ b/src/hydro/Gadget2/hydro.h
@@ -788,7 +788,7 @@ hydro_set_init_internal_energy(struct part *p, float u_init) {
 __attribute__((always_inline)) INLINE static int xpart_should_write(
     const struct xpart *xp, const struct engine *e) {
 
-  return (xp->logger_data.last_output > e->log->delta_step);  
+  return (xp->logger_data.last_output > e->log->delta_step);
 }
 #endif
 
diff --git a/src/hydro/Gadget2/hydro_io.h b/src/hydro/Gadget2/hydro_io.h
index a3828b0b4185e2c7745813ecad5071901fa204aa..dfce1c2c2209f36bacb5263d4fbcb179dadc6303 100644
--- a/src/hydro/Gadget2/hydro_io.h
+++ b/src/hydro/Gadget2/hydro_io.h
@@ -188,19 +188,17 @@ INLINE static void hydro_write_particles(const struct part* parts,
 #endif
 }
 
-
 /**
  * @brief Specifies which particle fields to write to a dataset
  *
  * @param parts The particle array.
  * @param list The list of i/o properties to write.
  * @param num_fields The number of i/o fields to write.
- * 
+ *
  * In this version, we only want the ids and the offset.
  */
 __attribute__((always_inline)) INLINE static void hydro_write_index(
-    const struct part* parts, const struct xpart* xparts,
-    struct io_props* list,
+    const struct part* parts, const struct xpart* xparts, struct io_props* list,
     int* num_fields) {
 
 #ifdef WITH_LOGGER
@@ -210,15 +208,13 @@ __attribute__((always_inline)) INLINE static void hydro_write_index(
   list[0] = io_make_output_field("ParticleIDs", ULONGLONG, 1,
                                  UNIT_CONV_NO_UNITS, parts, id);
 
-  list[1] = io_make_output_field("Offset", ULONGLONG, 1,
-                                 UNIT_CONV_NO_UNITS, xparts, logger_data.last_offset);
+  list[1] = io_make_output_field("Offset", ULONGLONG, 1, UNIT_CONV_NO_UNITS,
+                                 xparts, logger_data.last_offset);
 #else
   error("Cannot write index without logger");
 #endif
-  
 }
 
-
 /**
  * @brief Writes the current model of SPH to the file
  * @param h_grpsph The HDF5 group in which to write
diff --git a/src/logger.c b/src/logger.c
index 828a5a0849e2ff7c91b30cee177fac2355f0fc2e..a104f86061d5282df2449a07fc13cde2379d708d 100644
--- a/src/logger.c
+++ b/src/logger.c
@@ -24,10 +24,10 @@
 #ifdef WITH_LOGGER
 
 /* Some standard headers. */
+#include <hdf5.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
-#include <hdf5.h>
 
 /* This object's header. */
 #include "logger.h"
@@ -35,21 +35,16 @@
 /* Local headers. */
 #include "atomic.h"
 #include "dump.h"
+#include "engine.h"
 #include "error.h"
 #include "part.h"
 #include "units.h"
-#include "engine.h"
 
 char logger_version[logger_version_size] = "0.1";
 
-
 const unsigned int logger_datatype_size[logger_data_count] = {
-  sizeof(int),
-  sizeof(float),
-  sizeof(double),
-  sizeof(char),
-  sizeof(long long),
-  1,
+    sizeof(int),  sizeof(float),     sizeof(double),
+    sizeof(char), sizeof(long long), 1,
 };
 
 /**
@@ -62,7 +57,8 @@ const unsigned int logger_datatype_size[logger_data_count] = {
  *
  * @return updated buff
  */
-char *logger_write_chunk_header(char *buff, const unsigned int *mask, const size_t *offset, const size_t offset_new) {
+char *logger_write_chunk_header(char *buff, const unsigned int *mask,
+                                const size_t *offset, const size_t offset_new) {
   /* write mask */
   memcpy(buff, mask, logger_mask_size);
   buff += logger_mask_size;
@@ -83,8 +79,8 @@ char *logger_write_chunk_header(char *buff, const unsigned int *mask, const size
  * @param size number of bytes to write
  * @param p pointer to the data
  */
-void logger_write_data(struct dump *d, size_t *offset, size_t size, const void * p)
-{
+void logger_write_data(struct dump *d, size_t *offset, size_t size,
+                       const void *p) {
   /* get buffer */
   char *buff = dump_get(d, size, offset);
 
@@ -105,9 +101,10 @@ void logger_write_data(struct dump *d, size_t *offset, size_t size, const void *
  * @param name Label of the parameter (should be smaller than log->name)
  * @param data_type #logger_datatype to write
  */
-void logger_write_general_data(struct dump *d, const struct logger_parameters *params, size_t *offset,
-			       const void *p, char* name, size_t data_type)
-{
+void logger_write_general_data(struct dump *d,
+                               const struct logger_parameters *params,
+                               size_t *offset, const void *p, char *name,
+                               size_t data_type) {
   /* write name */
   logger_write_data(d, offset, params->label_size, name);
 
@@ -115,8 +112,7 @@ void logger_write_general_data(struct dump *d, const struct logger_parameters *p
   logger_write_data(d, offset, params->data_type_size, &data_type);
 
   /* write value */
-  if (data_type >= logger_data_count)
-    error("Not implemented");
+  if (data_type >= logger_data_count) error("Not implemented");
   size_t size = logger_datatype_size[data_type];
 
   logger_write_data(d, offset, size, p);
@@ -186,22 +182,21 @@ void logger_log_all(struct logger *log, const struct engine *e) {
   /* some constants */
   const struct space *s = e->s;
   const unsigned int mask = logger_mask_x | logger_mask_v | logger_mask_a |
-    logger_mask_u | logger_mask_h | logger_mask_rho |
-    logger_mask_consts;
+                            logger_mask_u | logger_mask_h | logger_mask_rho |
+                            logger_mask_consts;
 
   /* loop over all parts */
-  for(long long i=0; i < e->total_nr_parts; i++) {
-    logger_log_part(log, &s->parts[i], mask, &s->xparts[i].logger_data.last_offset);
+  for (long long i = 0; i < e->total_nr_parts; i++) {
+    logger_log_part(log, &s->parts[i], mask,
+                    &s->xparts[i].logger_data.last_offset);
     s->xparts[i].logger_data.last_output = 0;
   }
 
   /* loop over all gparts */
-  if (e->total_nr_gparts > 0)
-    error("Not implemented");
+  if (e->total_nr_gparts > 0) error("Not implemented");
 
   /* loop over all sparts */
   // TODO
-
 }
 
 /**
@@ -210,9 +205,11 @@ void logger_log_all(struct logger *log, const struct engine *e) {
  * @param log The #logger
  * @param p The #part to dump.
  * @param mask The mask of the data to dump.
- * @param offset Pointer to the offset of the previous log of this particle; (return) offset of this log.
+ * @param offset Pointer to the offset of the previous log of this particle;
+ * (return) offset of this log.
  */
-void logger_log_part(struct logger *log, const struct part *p, unsigned int mask, size_t *offset) {
+void logger_log_part(struct logger *log, const struct part *p,
+                     unsigned int mask, size_t *offset) {
 
   /* Make sure we're not writing a timestamp. */
   if (mask & logger_mask_timestamp)
@@ -286,9 +283,11 @@ void logger_log_part(struct logger *log, const struct part *p, unsigned int mask
  * @param log The #logger
  * @param p The #gpart to dump.
  * @param mask The mask of the data to dump.
- * @param offset Pointer to the offset of the previous log of this particle; (return) offset of this log.
+ * @param offset Pointer to the offset of the previous log of this particle;
+ * (return) offset of this log.
  */
-void logger_log_gpart(struct logger *log, const struct gpart *p, unsigned int mask, size_t *offset) {
+void logger_log_gpart(struct logger *log, const struct gpart *p,
+                      unsigned int mask, size_t *offset) {
 
   /* Make sure we're not writing a timestamp. */
   if (mask & logger_mask_timestamp)
@@ -343,11 +342,13 @@ void logger_log_gpart(struct logger *log, const struct gpart *p, unsigned int ma
  *
  * @param log The #logger
  * @param timestamp time to write
- * @param offset Pointer to the offset of the previous log of this particle; (return) offset of this log.
+ * @param offset Pointer to the offset of the previous log of this particle;
+ * (return) offset of this log.
  */
-void logger_log_timestamp(struct logger *log, integertime_t timestamp, size_t *offset) {
+void logger_log_timestamp(struct logger *log, integertime_t timestamp,
+                          size_t *offset) {
   struct dump *dump = log->dump;
-  
+
   /* Start by computing the size of the message. */
   const int size = logger_compute_chunk_size(logger_mask_timestamp);
 
@@ -366,7 +367,6 @@ void logger_log_timestamp(struct logger *log, integertime_t timestamp, size_t *o
   *offset = offset_new;
 }
 
-
 /**
  * @brief Ensure that the buffer is large enough for a step.
  *
@@ -378,16 +378,15 @@ void logger_log_timestamp(struct logger *log, integertime_t timestamp, size_t *o
  * @param total_nr_gparts total number of gpart
  * @param total_nr_sparts total number of spart
  */
-void logger_ensure_size(
-    struct logger *log, size_t total_nr_parts,
-    size_t total_nr_gparts, size_t total_nr_sparts) {
+void logger_ensure_size(struct logger *log, size_t total_nr_parts,
+                        size_t total_nr_gparts, size_t total_nr_sparts) {
 
   struct logger_parameters *log_params = log->params;
 
   /* count part memory */
   size_t limit = log_params->offset_size + log_params->mask_size;
 
-  for(size_t i=0; i < log_params->nber_mask; i++) {
+  for (size_t i = 0; i < log_params->nber_mask; i++) {
     if (log_params->masks[i] != logger_mask_timestamp)
       limit += log_params->masks_data_size[i];
   }
@@ -401,12 +400,10 @@ void logger_ensure_size(
   }
 
   /* count gpart memory */
-  if (total_nr_gparts > 0)
-    error("Not implemented");
+  if (total_nr_gparts > 0) error("Not implemented");
 
   /* count spart memory */
-  if (total_nr_sparts > 0)
-    error("Not implemented");
+  if (total_nr_sparts > 0) error("Not implemented");
 
   /* ensure enough space in dump */
   dump_ensure(log->dump, log->buffer_size);
@@ -418,11 +415,13 @@ void logger_ensure_size(
  * @param log The #logger
  * @param params The #swift_params
  */
-void logger_init(struct logger *log, const struct swift_params *params) {
+void logger_init(struct logger *log, struct swift_params *params) {
   /* read parameters */
   log->delta_step = parser_get_param_int(params, "Logger:delta_step");
-  log->buffer_size = parser_get_param_float(params, "Logger:mmaped_buffer_size") * 1e9;
-  log->buffer_scale = parser_get_opt_param_float(params, "Logger:buffer_scale", 1.2);
+  log->buffer_size =
+      parser_get_param_float(params, "Logger:mmaped_buffer_size") * 1e9;
+  log->buffer_scale =
+      parser_get_opt_param_float(params, "Logger:buffer_scale", 1.2);
   parser_get_param_string(params, "Logger:basename", log->base_name);
 
   /* set initial value of parameters */
@@ -434,7 +433,8 @@ void logger_init(struct logger *log, const struct swift_params *params) {
   strcat(logger_name_file, ".dump");
 
   /* init parameters */
-  log->params = (struct logger_parameters*) malloc(sizeof(struct logger_parameters));
+  log->params =
+      (struct logger_parameters *)malloc(sizeof(struct logger_parameters));
   logger_parameters_init(log->params);
 
   /* init dump */
@@ -445,7 +445,6 @@ void logger_init(struct logger *log, const struct swift_params *params) {
 
   /* ensure enough place in dump */
   dump_ensure(dump_file, log->buffer_size);
-
 }
 
 /**
@@ -471,50 +470,60 @@ void logger_write_file_header(struct logger *log, const struct engine *e) {
   /* get required variables */
   const struct logger_parameters log_params = *log->params;
   struct dump *dump = log->dump;
-  
+
   size_t file_offset = dump->file_offset;
-    
+
   if (file_offset != 0)
-    error("The logger is not empty."
-	  "This function should be called before writing anything in the logger");
+    error(
+        "The logger is not empty."
+        "This function should be called before writing anything in the logger");
 
   /* Write version information */
   logger_write_data(dump, &file_offset, logger_version_size, &logger_version);
- 
+
   /* write number of bytes used for the offsets */
-  logger_write_data(dump, &file_offset, logger_header_number_size, &log_params.offset_size);
+  logger_write_data(dump, &file_offset, logger_header_number_size,
+                    &log_params.offset_size);
 
   /* write offset direction */
   int reversed = 0;
-  logger_write_data(dump, &file_offset, logger_datatype_size[logger_data_bool], &reversed);
+  logger_write_data(dump, &file_offset, logger_datatype_size[logger_data_bool],
+                    &reversed);
 
   /* will write the offset of the first particle here */
   char *skip_header = dump_get(dump, log_params.offset_size, &file_offset);
 
   /* write number of bytes used for names */
-  logger_write_data(dump, &file_offset, logger_header_number_size, &log_params.label_size);
+  logger_write_data(dump, &file_offset, logger_header_number_size,
+                    &log_params.label_size);
 
   /* write number of bytes used for numbers */
-  logger_write_data(dump, &file_offset, logger_header_number_size, &log_params.number_size);
+  logger_write_data(dump, &file_offset, logger_header_number_size,
+                    &log_params.number_size);
 
   /* write number of bytes used for masks */
-  logger_write_data(dump, &file_offset, logger_header_number_size, &log_params.mask_size);
+  logger_write_data(dump, &file_offset, logger_header_number_size,
+                    &log_params.mask_size);
 
   /* write number of masks */
-  logger_write_data(dump, &file_offset, log_params.number_size, &log_params.nber_mask);
-  
+  logger_write_data(dump, &file_offset, log_params.number_size,
+                    &log_params.nber_mask);
+
   /* write masks */
   // loop over all mask type
-  for(size_t i=0; i<log_params.nber_mask; i++) {
+  for (size_t i = 0; i < log_params.nber_mask; i++) {
     // mask name
     size_t j = i * log_params.label_size;
-    logger_write_data(dump, &file_offset, log_params.label_size, &log_params.masks_name[j]);
-    
+    logger_write_data(dump, &file_offset, log_params.label_size,
+                      &log_params.masks_name[j]);
+
     // mask
-    logger_write_data(dump, &file_offset, log_params.mask_size, &log_params.masks[i]);
+    logger_write_data(dump, &file_offset, log_params.mask_size,
+                      &log_params.masks[i]);
 
     // mask size
-    logger_write_data(dump, &file_offset, log_params.number_size, &log_params.masks_data_size[i]);
+    logger_write_data(dump, &file_offset, log_params.number_size,
+                      &log_params.masks_data_size[i]);
   }
 
   /* write mask data */
@@ -523,12 +532,12 @@ void logger_write_file_header(struct logger *log, const struct engine *e) {
   /* write number of bytes for each field */
   /* write data type (float, double, ...) */
   /* write data name (mass, id, ...) */
-  
+
   /* Write data */
   char *name = malloc(sizeof(char) * log_params.label_size);
   strcpy(name, "time_base");
   logger_write_general_data(dump, &log_params, &file_offset, &e->time_base,
-			    name, logger_data_double);
+                            name, logger_data_double);
 
   /* last step: write first offset */
   memcpy(skip_header, &file_offset, log_params.offset_size);
@@ -544,7 +553,7 @@ void logger_write_file_header(struct logger *log, const struct engine *e) {
  *
  * @param log_params #logger_parameters to initialize
  */
-void logger_parameters_init(struct logger_parameters* log_params) {
+void logger_parameters_init(struct logger_parameters *log_params) {
   /* set parameters */
   log_params->label_size = 20;
   log_params->offset_size = 7;
@@ -553,9 +562,9 @@ void logger_parameters_init(struct logger_parameters* log_params) {
   log_params->data_type_size = 1;
 
   log_params->nber_mask = 8;
-  
+
   /* set masks array */
-  log_params->masks = malloc(sizeof(size_t)*log_params->nber_mask);
+  log_params->masks = malloc(sizeof(size_t) * log_params->nber_mask);
   log_params->masks[0] = logger_mask_x;
   log_params->masks[1] = logger_mask_v;
   log_params->masks[2] = logger_mask_a;
@@ -615,7 +624,6 @@ void logger_parameters_init(struct logger_parameters* log_params) {
   log_params->masks_data_size[7] = sizeof(integertime_t);
 
   // todo masks_type
-
 }
 
 /**
@@ -623,13 +631,12 @@ void logger_parameters_init(struct logger_parameters* log_params) {
  *
  * @param log_params The #logger_parameters
  */
-void logger_parameters_clean(struct logger_parameters* log_params) {
+void logger_parameters_clean(struct logger_parameters *log_params) {
   free(log_params->masks);
   free(log_params->masks_name);
   free(log_params->masks_data_size);
 }
 
-
 /**
  * @brief read chunk header
  *
@@ -640,14 +647,15 @@ void logger_parameters_clean(struct logger_parameters* log_params) {
  *
  * @return Number of bytes read
  */
-__attribute__((always_inline)) INLINE static int logger_read_chunk_header(const char *buff, unsigned int *mask, size_t *offset, size_t cur_offset) {
+__attribute__((always_inline)) INLINE static int logger_read_chunk_header(
+    const char *buff, unsigned int *mask, size_t *offset, size_t cur_offset) {
   memcpy(mask, buff, logger_mask_size);
   buff += logger_mask_size;
 
   *offset = 0;
   memcpy(offset, buff, logger_offset_size);
   *offset = cur_offset - *offset;
-  
+
   return logger_mask_size + logger_offset_size;
 }
 
@@ -824,4 +832,3 @@ int logger_read_timestamp(unsigned long long int *t, size_t *offset,
 #endif /* WITH_LOGGER */
 
 #endif /* HAVE_POSIX_FALLOCATE */
-
diff --git a/src/logger.h b/src/logger.h
index 82482cfa9c8a472f932a2e37bbacdd58c7621e07..12bbadf31c63783044597bf9c17ea3a0a4ce9db6 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -118,7 +118,7 @@ struct logger_parameters {
 
   /* size of a data type in bytes */
   size_t data_type_size;
-  
+
   /* number of different mask */
   size_t nber_mask;
 
@@ -127,20 +127,18 @@ struct logger_parameters {
 
   /* data size of each mask */
   size_t *masks_data_size;
-  
+
   /* label of each mask */
   char *masks_name;
-
 };
 
-
 /* structure containing global data */
 struct logger {
   /* Number of particle steps between dumping a chunk of data */
   short int delta_step;
 
   /* Logger basename */
-  char base_name[LOGGER_STRING_LENGTH];  
+  char base_name[LOGGER_STRING_LENGTH];
 
   /* File name of the dump file */
   struct dump *dump;
@@ -168,8 +166,7 @@ struct logger_part_data {
   size_t last_offset;
 };
 
-INLINE static  void logger_part_data_init(
-    struct logger_part_data *logger ) {
+INLINE static void logger_part_data_init(struct logger_part_data *logger) {
   logger->last_offset = 0;
   logger->last_output = SHRT_MAX;
 }
@@ -189,22 +186,24 @@ extern const unsigned int logger_datatype_size[];
 /* Function prototypes. */
 int logger_compute_chunk_size(unsigned int mask);
 void logger_log_all(struct logger *log, const struct engine *e);
-void logger_log_part(struct logger *log, const struct part *p, unsigned int mask, size_t *offset);
-void logger_log_gpart(struct logger *log, const struct gpart *p, unsigned int mask, size_t *offset);
-void logger_init(struct logger *log, const struct swift_params *params);
+void logger_log_part(struct logger *log, const struct part *p,
+                     unsigned int mask, size_t *offset);
+void logger_log_gpart(struct logger *log, const struct gpart *p,
+                      unsigned int mask, size_t *offset);
+void logger_init(struct logger *log, struct swift_params *params);
 void logger_clean(struct logger *log);
 void logger_log_timestamp(struct logger *log, integertime_t t, size_t *offset);
 void logger_ensure_size(struct logger *log, size_t total_nr_parts,
-    size_t total_nr_gparts, size_t total_nr_sparts);
-void logger_write_file_header(struct logger *log, const struct engine* e);
+                        size_t total_nr_gparts, size_t total_nr_sparts);
+void logger_write_file_header(struct logger *log, const struct engine *e);
 
 int logger_read_part(struct part *p, size_t *offset, const char *buff);
 int logger_read_gpart(struct gpart *p, size_t *offset, const char *buff);
 int logger_read_timestamp(unsigned long long int *t, size_t *offset,
                           const char *buff);
 
-void logger_parameters_init(struct logger_parameters* log_params);
-void logger_parameters_clean(struct logger_parameters* log_params);
+void logger_parameters_init(struct logger_parameters *log_params);
+void logger_parameters_clean(struct logger_parameters *log_params);
 
 #endif /* WITH_LOGGER */
 
diff --git a/src/logger_io.c b/src/logger_io.c
index dc3ca9b4909c844c6067738931b88c044e604313..f80baaee4d9a4d66492d3c303d22ab425674f829 100644
--- a/src/logger_io.c
+++ b/src/logger_io.c
@@ -63,16 +63,16 @@
  * @param internal_units The #unit_system used internally
  * @param snapshot_units The #unit_system used in the snapshots
  *
- * Creates an HDF5 output file and writes the offset and id of particles contained
- * in the engine. If such a file already exists, it is erased and replaced
- * by the new one.
+ * Creates an HDF5 output file and writes the offset and id of particles
+ * contained in the engine. If such a file already exists, it is erased and
+ * replaced by the new one.
  *
  * Calls #error() if an error occurs.
  *
  */
 void write_index_single(struct engine* e, const char* baseName,
-                         const struct unit_system* internal_units,
-                         const struct unit_system* snapshot_units) {
+                        const struct unit_system* internal_units,
+                        const struct unit_system* snapshot_units) {
 
   hid_t h_file = 0, h_grp = 0;
   const size_t Ngas = e->s->nr_parts;
@@ -81,13 +81,13 @@ void write_index_single(struct engine* e, const char* baseName,
   int periodic = e->s->periodic;
   int numFiles = 1;
   struct part* parts = e->s->parts;
-  struct xpart *xparts = e->s->xparts;
-  //struct gpart* gparts = e->s->gparts;
+  struct xpart* xparts = e->s->xparts;
+  // struct gpart* gparts = e->s->gparts;
   struct gpart* dmparts = NULL;
-  //struct spart* sparts = e->s->sparts;
+  // struct spart* sparts = e->s->sparts;
   static int outputCount = 0;
 
-  struct logger *log = e->log;
+  struct logger* log = e->log;
 
   /* Number of unassociated gparts */
   const size_t Ndm = Ntot > 0 ? Ntot - (Ngas + Nstars) : 0;
@@ -182,7 +182,14 @@ void write_index_single(struct engine* e, const char* baseName,
   h_grp =
       H5Gcreate(h_file, "/Parameters", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
   if (h_grp < 0) error("Error while creating parameters group");
-  parser_write_params_to_hdf5(e->parameter_file, h_grp);
+  parser_write_params_to_hdf5(e->parameter_file, h_grp, 1);
+  H5Gclose(h_grp);
+
+  /* Print the runtime unused parameters */
+  h_grp = H5Gcreate(h_file, "/UnusedParameters", H5P_DEFAULT, H5P_DEFAULT,
+                    H5P_DEFAULT);
+  if (h_grp < 0) error("Error while creating parameters group");
+  parser_write_params_to_hdf5(e->parameter_file, h_grp, 0);
   H5Gclose(h_grp);
 
   /* Print the system of Units used in the spashot */
@@ -249,17 +256,17 @@ void write_index_single(struct engine* e, const char* baseName,
 
       case swift_type_gas:
         N = Ngas;
-	hydro_write_index(parts, xparts, list, &num_fields);
+        hydro_write_index(parts, xparts, list, &num_fields);
         break;
 
       case swift_type_dark_matter:
-	error("TODO");
-	break;
-	  
-      case swift_type_star:
+        error("TODO");
+        break;
+
+      case swift_type_stars:
         N = Nstars;
-	error("TODO");
-        //star_write_index(sparts, list, &num_fields);
+        error("TODO");
+        // star_write_index(sparts, list, &num_fields);
         break;
 
       default:
@@ -279,7 +286,6 @@ void write_index_single(struct engine* e, const char* baseName,
 
     /* Close particle group */
     H5Gclose(h_grp);
-
   }
 
   /* message("Done writing particles..."); */
diff --git a/src/logger_io.h b/src/logger_io.h
index 5732cf5b66c3964b9c8c1c3a6c002313afdc4e0d..76b7150043dc25f222ef927c3508b84e423aff4a 100644
--- a/src/logger_io.h
+++ b/src/logger_io.h
@@ -30,8 +30,8 @@
 #include "units.h"
 
 void write_index_single(struct engine* e, const char* baseName,
-			const struct unit_system* internal_units,
-			const struct unit_system* snapshot_units);
+                        const struct unit_system* internal_units,
+                        const struct unit_system* snapshot_units);
 #endif
 
 #endif /* SWIFT_LOGGER_IO_H */
diff --git a/src/parallel_io.h b/src/parallel_io.h
index 35d0a1e18b54d85b8f8532bab5117a511568ea7f..9cd775347f0d5fbb3bc1b17664e0d5dba734d795 100644
--- a/src/parallel_io.h
+++ b/src/parallel_io.h
@@ -29,6 +29,7 @@
 
 /* Includes. */
 #include "engine.h"
+#include "io_properties.h"
 #include "part.h"
 #include "units.h"
 
diff --git a/src/runner.c b/src/runner.c
index a4cee98014b3f1b507762d5052fe1dbb9f40dc92..be628cbfd6888cb7cb6c987b02aa6b5e7186969c 100644
--- a/src/runner.c
+++ b/src/runner.c
@@ -899,7 +899,7 @@ void runner_do_init_grav(struct runner *r, struct cell *c, int timer) {
  * @param timer Are we timing this ?
  */
 void runner_do_extra_ghost(struct runner *r, struct cell *c, int timer) {
-  
+
 #ifdef EXTRA_HYDRO_LOOP
 
   struct part *restrict parts = c->hydro.parts;
@@ -2506,7 +2506,6 @@ void *runner_main(void *data) {
       t->ti_run = e->ti_current;
 #endif
 
-
       /* Different types of tasks... */
       switch (t->type) {
         case task_type_self:
@@ -2613,8 +2612,8 @@ void *runner_main(void *data) {
           runner_do_end_force(r, ci, 1);
           break;
         case task_type_logger:
-	  runner_do_logger(r, ci, 1);
-	  break;
+          runner_do_logger(r, ci, 1);
+          break;
         case task_type_timestep:
           runner_do_timestep(r, ci, 1);
           break;
@@ -2694,7 +2693,6 @@ void *runner_main(void *data) {
   return NULL;
 }
 
-
 /**
  * @brief Write the required particles through the logger.
  *
@@ -2708,13 +2706,12 @@ void runner_do_logger(struct runner *r, struct cell *c, int timer) {
   TIMER_TIC;
 
   const struct engine *e = r->e;
-  struct part *restrict parts = c->parts;
-  struct xpart *restrict xparts = c->xparts;
-  const int count = c->count;
+  struct part *restrict parts = c->hydro.parts;
+  struct xpart *restrict xparts = c->hydro.xparts;
+  const int count = c->hydro.count;
 
   /* Anything to do here? */
-  if (!cell_is_starting_hydro(c, e) && !cell_is_starting_gravity(c, e))
-    return;
+  if (!cell_is_starting_hydro(c, e) && !cell_is_starting_gravity(c, e)) return;
 
   /* Recurse? */
   if (c->split) {
@@ -2732,35 +2729,30 @@ void runner_do_logger(struct runner *r, struct cell *c, int timer) {
       /* If particle needs to be kicked */
       if (part_is_starting(p, e)) {
 
-	if (xpart_should_write(xp, e))
-	  {
-	    /* Write particle */
-	    logger_log_part(e->log, p, logger_mask_x | logger_mask_v | logger_mask_a |
-			    logger_mask_u | logger_mask_h | logger_mask_rho |
-			    logger_mask_consts,
-			    &xp->logger_data.last_offset);
-	    //message("Offset: %lu", p->last_offset);
-	    /* Set counter back to zero */
-	    xp->logger_data.last_output = 0;
-	  }
-	else
-	  /* Update counter */
-	  xp->logger_data.last_output += 1;
+        if (xpart_should_write(xp, e)) {
+          /* Write particle */
+          logger_log_part(e->log, p,
+                          logger_mask_x | logger_mask_v | logger_mask_a |
+                              logger_mask_u | logger_mask_h | logger_mask_rho |
+                              logger_mask_consts,
+                          &xp->logger_data.last_offset);
+          // message("Offset: %lu", p->last_offset);
+          /* Set counter back to zero */
+          xp->logger_data.last_output = 0;
+        } else
+          /* Update counter */
+          xp->logger_data.last_output += 1;
       }
     }
-
   }
 
-  if (c->gcount > 0)
-    error("gparts not implemented");
+  if (c->grav.count > 0) error("gparts not implemented");
+
+  if (c->stars.count > 0) error("sparts not implemented");
 
-  if (c->scount > 0)
-    error("sparts not implemented");
-  
   if (timer) TIMER_TOC(timer_logger);
 
 #else
   error("Logger disabled, please enable it during configuration");
 #endif
-  
 }
diff --git a/src/single_io.c b/src/single_io.c
index e8cd02ff8114f7b9de086ed44bdd124b6a01a338..99f016809d11abc4f9f31695306850d82fd56c84 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -314,7 +314,7 @@ void writeArray(const struct engine* e, hid_t grp, char* fileName,
   /* Write XMF description for this data set */
   if (xmfFile != NULL)
     xmf_write_line(xmfFile, fileName, partTypeGroupName, props.name, N,
-		   props.dimension, props.type);
+                   props.dimension, props.type);
 
   /* Write unit conversion factors for this data set */
   char buffer[FIELD_BUFFER_SIZE];
@@ -995,5 +995,4 @@ void write_output_single(struct engine* e, const char* baseName,
   e->snapshot_output_count++;
 }
 
-
 #endif /* HAVE_HDF5 */
diff --git a/src/task.c b/src/task.c
index 9aeca8cd7eec7680bcb0148a9bf172a5efd4aa4f..834ae319399fbefcf7379a4ccd1a59f104a9fa28 100644
--- a/src/task.c
+++ b/src/task.c
@@ -47,19 +47,38 @@
 #include "lock.h"
 
 /* Task type names. */
-const char *taskID_names[task_type_count] = {
-    "none",           "sort",           "self",
-    "pair",           "sub_self",       "sub_pair",
-    "init_grav",      "init_grav_out",  "ghost_in",
-    "ghost",          "ghost_out",      "extra_ghost",
-    "drift_part",     "drift_gpart",    "end_force",
-    "kick1",          "kick2",          "timestep",
-    "send",           "recv",           "grav_long_range",
-    "grav_mm",        "grav_down_in",   "grav_down",
-    "grav_mesh",      "cooling",        "star_formation",
-    "sourceterms",    "stars_ghost_in", "stars_ghost",
-    "stars_ghost_out","logger"
-};
+const char *taskID_names[task_type_count] = {"none",
+                                             "sort",
+                                             "self",
+                                             "pair",
+                                             "sub_self",
+                                             "sub_pair",
+                                             "init_grav",
+                                             "init_grav_out",
+                                             "ghost_in",
+                                             "ghost",
+                                             "ghost_out",
+                                             "extra_ghost",
+                                             "drift_part",
+                                             "drift_gpart",
+                                             "end_force",
+                                             "kick1",
+                                             "kick2",
+                                             "timestep",
+                                             "send",
+                                             "recv",
+                                             "grav_long_range",
+                                             "grav_mm",
+                                             "grav_down_in",
+                                             "grav_down",
+                                             "grav_mesh",
+                                             "cooling",
+                                             "star_formation",
+                                             "sourceterms",
+                                             "stars_ghost_in",
+                                             "stars_ghost",
+                                             "stars_ghost_out",
+                                             "logger"};
 
 /* Sub-task type names. */
 const char *subtaskID_names[task_subtype_count] = {
diff --git a/src/timers.c b/src/timers.c
index dae35f30295e067263610ba74ea192f1012c0fbf..5cd75cced7433427904e013629dd37c9bf28d009 100644
--- a/src/timers.c
+++ b/src/timers.c
@@ -35,67 +35,65 @@
 ticks timers[timer_count];
 
 /* Timer names. */
-const char* timers_names[timer_count] = {
-    "none",
-    "prepare",
-    "init",
-    "init_grav",
-    "drift_part",
-    "drift_gpart",
-    "kick1",
-    "kick2",
-    "timestep",
-    "endforce",
-    "dosort",
-    "doself_density",
-    "doself_gradient",
-    "doself_force",
-    "doself_grav_pp",
-    "dopair_density",
-    "dopair_gradient",
-    "dopair_force",
-    "dopair_grav_mm",
-    "dopair_grav_pp",
-    "dograv_external",
-    "dograv_down",
-    "dograv_mesh",
-    "dograv_top_level",
-    "dograv_long_range",
-    "dosource",
-    "dosub_self_density",
-    "dosub_self_gradient",
-    "dosub_self_force",
-    "dosub_self_grav",
-    "dosub_pair_density",
-    "dosub_pair_gradient",
-    "dosub_pair_force",
-    "dosub_pair_grav",
-    "doself_subset",
-    "dopair_subset",
-    "dopair_subset_naive",
-    "dosub_subset",
-    "do_ghost",
-    "do_extra_ghost",
-    "dorecv_part",
-    "dorecv_gpart",
-    "dorecv_spart",
-    "do_cooling",
-    "do_star_formation",
-    "gettask",
-    "qget",
-    "qsteal",
-    "locktree",
-    "runners",
-    "step",
-    "doself_stars_density",
-    "dopair_stars_density",
-    "do_stars_ghost",
-    "doself_subset_stars_density",
-    "dopair_subset_stars_density",
-    "dosubpair_stars_density",
-    "dosub_self_stars_density",
-    "logger"
-};
+const char* timers_names[timer_count] = {"none",
+                                         "prepare",
+                                         "init",
+                                         "init_grav",
+                                         "drift_part",
+                                         "drift_gpart",
+                                         "kick1",
+                                         "kick2",
+                                         "timestep",
+                                         "endforce",
+                                         "dosort",
+                                         "doself_density",
+                                         "doself_gradient",
+                                         "doself_force",
+                                         "doself_grav_pp",
+                                         "dopair_density",
+                                         "dopair_gradient",
+                                         "dopair_force",
+                                         "dopair_grav_mm",
+                                         "dopair_grav_pp",
+                                         "dograv_external",
+                                         "dograv_down",
+                                         "dograv_mesh",
+                                         "dograv_top_level",
+                                         "dograv_long_range",
+                                         "dosource",
+                                         "dosub_self_density",
+                                         "dosub_self_gradient",
+                                         "dosub_self_force",
+                                         "dosub_self_grav",
+                                         "dosub_pair_density",
+                                         "dosub_pair_gradient",
+                                         "dosub_pair_force",
+                                         "dosub_pair_grav",
+                                         "doself_subset",
+                                         "dopair_subset",
+                                         "dopair_subset_naive",
+                                         "dosub_subset",
+                                         "do_ghost",
+                                         "do_extra_ghost",
+                                         "dorecv_part",
+                                         "dorecv_gpart",
+                                         "dorecv_spart",
+                                         "do_cooling",
+                                         "do_star_formation",
+                                         "gettask",
+                                         "qget",
+                                         "qsteal",
+                                         "locktree",
+                                         "runners",
+                                         "step",
+                                         "doself_stars_density",
+                                         "dopair_stars_density",
+                                         "do_stars_ghost",
+                                         "doself_subset_stars_density",
+                                         "dopair_subset_stars_density",
+                                         "dosubpair_stars_density",
+                                         "dosub_self_stars_density",
+                                         "logger"};
 
 /* File to store the timers */
 static FILE* timers_file;
diff --git a/tests/testLogger.c b/tests/testLogger.c
index 14e49cdfd3b112949243f7cd6b3c4126c68d696d..2c7339c63560860700d967ac5f9f367803a9746f 100644
--- a/tests/testLogger.c
+++ b/tests/testLogger.c
@@ -20,7 +20,8 @@
 /* Config parameters. */
 #include "../config.h"
 
-#if defined(HAVE_POSIX_FALLOCATE) && defined(WITH_LOGGER) /* Are we on a sensible platform? */
+#if defined(HAVE_POSIX_FALLOCATE) && \
+    defined(WITH_LOGGER) /* Are we on a sensible platform? */
 
 /* Some standard headers. */
 #include <stdio.h>
@@ -44,9 +45,11 @@ void test_log_parts(struct logger *log) {
   size_t offset = d->count;
 
   /* Write the full part. */
-  logger_log_part(log, &p, logger_mask_x | logger_mask_v | logger_mask_a |
-                          logger_mask_u | logger_mask_h | logger_mask_rho |
-                          logger_mask_consts, &offset);
+  logger_log_part(log, &p,
+                  logger_mask_x | logger_mask_v | logger_mask_a |
+                      logger_mask_u | logger_mask_h | logger_mask_rho |
+                      logger_mask_consts,
+                  &offset);
   printf("Wrote part at offset %#016zx.\n", offset);
 
   /* Write only the position. */
@@ -113,8 +116,10 @@ void test_log_gparts(struct logger *log) {
   size_t offset = d->count;
 
   /* Write the full part. */
-  logger_log_gpart(log, &p, logger_mask_x | logger_mask_v | logger_mask_a |
-                           logger_mask_h | logger_mask_consts, &offset);
+  logger_log_gpart(log, &p,
+                   logger_mask_x | logger_mask_v | logger_mask_a |
+                       logger_mask_h | logger_mask_consts,
+                   &offset);
   printf("Wrote gpart at offset %#016zx.\n", offset);
 
   /* Write only the position. */