diff --git a/src/profiler.c b/src/profiler.c
index 8e7299b187f1037a5bdcea13edd2f524fdf4cd36..ad8338eebfd130d4088f9fd9d4fcc9856c8cc731 100644
--- a/src/profiler.c
+++ b/src/profiler.c
@@ -26,10 +26,15 @@
 /* This object's header. */
 #include "profiler.h"
 
+/* Local includes */
+#include "clocks.h"
+#include "hydro.h"
+#include "version.h"
+
 /**
  * @brief Resets all timers.
  *
- * @param (return) profiler #profiler object that holds file pointers and
+ * @param profiler #profiler object that holds file pointers and
  * function timers.
  */
 void profiler_reset_timers(struct profiler *profiler) {
@@ -59,9 +64,9 @@ void profiler_reset_timers(struct profiler *profiler) {
  * @param e #engine object to get various properties.
  * @param fileName name of file to be written to.
  * @param functionName name of function that is being timed.
- * @param (return) file pointer used to open output file.
+ * @param file (return) pointer used to open output file.
  */
-void profiler_write_timing_info_header(struct engine *e, char *fileName,
+void profiler_write_timing_info_header(const struct engine *e, char *fileName,
                                        char *functionName, FILE **file) {
 
   /* Create the file name in the format: "fileName_(no. of threads)" */
@@ -93,10 +98,10 @@ void profiler_write_timing_info_header(struct engine *e, char *fileName,
  * start of the simulation, it could be called in engine_init() for example.
  *
  * @param e #engine object to get various properties.
- * @param (return) profiler #profiler object that holds file pointers and
+ * @param profiler #profiler object that holds file pointers and
  * function timers.
  */
-void profiler_write_all_timing_info_headers(struct engine *e,
+void profiler_write_all_timing_info_headers(const struct engine *e,
                                             struct profiler *profiler) {
 
   profiler_write_timing_info_header(e, "enginecollecttimesteps",
@@ -142,14 +147,15 @@ void profiler_write_all_timing_info_headers(struct engine *e,
  * @brief Writes timing info to the output file.
  *
  * @param e #engine object to get various properties.
- * @param time #ticks time in ticks to be written to the output file.
- * @param (return) file pointer used to open output file.
+ * @param time Time in ticks to be written to the output file.
+ * @param file pointer used to open output file.
  */
-void profiler_write_timing_info(struct engine *e, ticks time, FILE **file) {
+void profiler_write_timing_info(const struct engine *e, ticks time,
+                                FILE *file) {
 
-  fprintf(*file, "  %6d %14e %14e %10zu %10zu %21.3f\n", e->step, e->time,
+  fprintf(file, "  %6d %14e %14e %10zu %10zu %21.3f\n", e->step, e->time,
           e->timeStep, e->updates, e->g_updates, clocks_from_ticks(time));
-  fflush(*file);
+  fflush(file);
 }
 
 /**
@@ -157,44 +163,44 @@ void profiler_write_timing_info(struct engine *e, ticks time, FILE **file) {
  * every time step, in engine_step() for example.
  *
  * @param e #engine object to get various properties.
- * @param (return) profiler #profiler object that holds file pointers and
+ * @param profiler #profiler object that holds file pointers and
  * function timers.
  */
-void profiler_write_all_timing_info(struct engine *e,
+void profiler_write_all_timing_info(const struct engine *e,
                                     struct profiler *profiler) {
 
   profiler_write_timing_info(e, profiler->drift_time,
-                             &profiler->file_engine_drift);
+                             profiler->file_engine_drift);
   profiler_write_timing_info(e, profiler->rebuild_time,
-                             &profiler->file_engine_rebuild);
+                             profiler->file_engine_rebuild);
   profiler_write_timing_info(e, profiler->reweight_time,
-                             &profiler->file_scheduler_reweight);
+                             profiler->file_scheduler_reweight);
   profiler_write_timing_info(e, profiler->clear_waits_time,
-                             &profiler->file_scheduler_clear_waits);
+                             profiler->file_scheduler_clear_waits);
   profiler_write_timing_info(e, profiler->re_wait_time,
-                             &profiler->file_scheduler_re_wait);
+                             profiler->file_scheduler_re_wait);
   profiler_write_timing_info(e, profiler->enqueue_time,
-                             &profiler->file_scheduler_enqueue);
+                             profiler->file_scheduler_enqueue);
   profiler_write_timing_info(e, profiler->stats_time,
-                             &profiler->file_engine_stats);
+                             profiler->file_engine_stats);
   profiler_write_timing_info(e, profiler->launch_time,
-                             &profiler->file_engine_launch);
+                             profiler->file_engine_launch);
   profiler_write_timing_info(e, profiler->space_rebuild_time,
-                             &profiler->file_space_rebuild);
+                             profiler->file_space_rebuild);
   profiler_write_timing_info(e, profiler->engine_maketasks_time,
-                             &profiler->file_engine_maketasks);
+                             profiler->file_engine_maketasks);
   profiler_write_timing_info(e, profiler->engine_marktasks_time,
-                             &profiler->file_engine_marktasks);
+                             profiler->file_engine_marktasks);
   profiler_write_timing_info(e, profiler->space_regrid_time,
-                             &profiler->file_space_regrid);
+                             profiler->file_space_regrid);
   profiler_write_timing_info(e, profiler->space_parts_sort_time,
-                             &profiler->file_space_parts_sort);
+                             profiler->file_space_parts_sort);
   profiler_write_timing_info(e, profiler->space_split_time,
-                             &profiler->file_space_split);
+                             profiler->file_space_split);
   profiler_write_timing_info(e, profiler->space_parts_get_cell_id_time,
-                             &profiler->file_space_parts_get_cell_id);
+                             profiler->file_space_parts_get_cell_id);
   profiler_write_timing_info(e, profiler->space_count_parts_time,
-                             &profiler->file_space_count_parts);
+                             profiler->file_space_count_parts);
 
   /* Reset timers. */
   profiler_reset_timers(profiler);
@@ -204,7 +210,7 @@ void profiler_write_all_timing_info(struct engine *e,
  * @brief Closes all output files, should be called at the end of the
  * simulation.
  *
- * @param (return) profiler #profiler object that holds file pointers and
+ * @param profiler #profiler object that holds file pointers and
  * function timers.
  */
 void profiler_close_files(struct profiler *profiler) {
diff --git a/src/profiler.h b/src/profiler.h
index 859f58ae31112a45265d84ffc6043a78514aa5ee..b00bc986ece8b78282b11ce317a6746ecba5a50f 100644
--- a/src/profiler.h
+++ b/src/profiler.h
@@ -22,11 +22,8 @@
 /* Config parameters. */
 #include "../config.h"
 
-/* Includes. */
-#include "clocks.h"
+/* Local includes */
 #include "engine.h"
-#include "hydro.h"
-#include "version.h"
 
 /* Profiler that holds file pointers and time taken in functions. */
 struct profiler {
@@ -72,12 +69,9 @@ struct profiler {
 
 /* Function prototypes. */
 void profiler_reset_timers(struct profiler *profiler);
-void profiler_write_timing_info_header(struct engine *e, char *fileName,
-                                       char *functionName, FILE **file);
-void profiler_write_all_timing_info_headers(struct engine *e,
+void profiler_write_all_timing_info_headers(const struct engine *e,
                                             struct profiler *profiler);
-void profiler_write_timing_info(struct engine *e, ticks time, FILE **file);
-void profiler_write_all_timing_info(struct engine *e,
+void profiler_write_all_timing_info(const struct engine *e,
                                     struct profiler *profiler);
 void profiler_close_files(struct profiler *profiler);