diff --git a/src/cell.h b/src/cell.h
index 7bc88d0f68246094b08f2462b8d28bc7a8301119..a69a1a74648d76aeb13126d37a3c1265397dc2bf 100644
--- a/src/cell.h
+++ b/src/cell.h
@@ -117,8 +117,8 @@ struct cell {
   struct link *density, *force, *grav;
   int nr_density, nr_force, nr_grav;
 
-  /* The hierarchy task to link density to interactions. */
-  struct task *hierarchy, *init, *drift, *kick;
+  /* The hierarchical tasks. */
+  struct task *ghost, *init, *drift, *kick;
 
   /* Task receiving data. */
   struct task *recv_xv, *recv_rho;
diff --git a/src/engine.c b/src/engine.c
index 5b3d5bc758914f880d02eaf332e978fcb7001874..a5b8fdabe346db0ae2f5f6571896f852b405fe64 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -95,10 +95,9 @@ struct link *engine_addlink(struct engine *e, struct link *l, struct task *t) {
 }
 
 /**
- * @brief Generate the hierarchical tasks for a hierarchy of cells - all the O(Npart) tasks.
+ * @brief Generate the hierarchical tasks for a hierarchy of cells - i.e. all
+ * the O(Npart) tasks.
  *
- * Previously this was called the ghost task but has since been renamed to reflect
- * it's new more general usage.
  * Tasks are only created here. The dependencies will be added later on.
  *
  * @param e The #engine.
@@ -107,7 +106,7 @@ struct link *engine_addlink(struct engine *e, struct link *l, struct task *t) {
  */
 
 void engine_make_hierarchical_tasks(struct engine *e, struct cell *c,
-                             struct cell *super) {
+                                    struct cell *super) {
 
   struct scheduler *s = &e->sched;
   const int is_with_external_gravity =
@@ -137,8 +136,8 @@ void engine_make_hierarchical_tasks(struct engine *e, struct cell *c,
 
       if (c->count > 0) {
 
-        /* Generate the hierarchy task i.e. ghost task. */
-        c->hierarchy = scheduler_addtask(s, task_type_hierarchy, task_subtype_none, 0,
+        /* Generate the ghost task. */
+        c->ghost = scheduler_addtask(s, task_type_ghost, task_subtype_none, 0,
                                      0, c, NULL, 0);
       }
 
@@ -617,14 +616,14 @@ void engine_addtasks_send(struct engine *e, struct cell *ci, struct cell *cj) {
     struct task *t_rho = scheduler_addtask(s, task_type_send, task_subtype_none,
                                            2 * ci->tag + 1, 0, ci, cj, 0);
 
-    /* The send_rho task depends on the cell's hierarchy task. */
-    scheduler_addunlock(s, ci->super->hierarchy, t_rho);
+    /* The send_rho task depends on the cell's ghost task. */
+    scheduler_addunlock(s, ci->super->ghost, t_rho);
 
     /* The send_rho task should unlock the super-cell's kick task. */
     scheduler_addunlock(s, t_rho, ci->super->kick);
 
-    /* The send_xv task should unlock the super-cell's hierarchy task. */
-    scheduler_addunlock(s, t_xv, ci->super->hierarchy);
+    /* The send_xv task should unlock the super-cell's ghost task. */
+    scheduler_addunlock(s, t_xv, ci->super->ghost);
 
   }
 
@@ -1222,10 +1221,10 @@ static inline void engine_make_hydro_loops_dependencies(struct scheduler *sched,
                                                         struct task *force,
                                                         struct cell *c) {
 
-  /* init --> density loop --> hierarchy (ghost) --> force loop --> kick */
+  /* init --> density loop --> ghost --> force loop --> kick */
   scheduler_addunlock(sched, c->super->init, density);
-  scheduler_addunlock(sched, density, c->super->hierarchy);
-  scheduler_addunlock(sched, c->super->hierarchy, force);
+  scheduler_addunlock(sched, density, c->super->ghost);
+  scheduler_addunlock(sched, c->super->ghost, force);
   scheduler_addunlock(sched, force, c->super->kick);
 }
 
@@ -1460,7 +1459,8 @@ void engine_maketasks(struct engine *e) {
     engine_make_hierarchical_tasks(e, &cells[k], NULL);
 
   /* Run through the tasks and make force tasks for each density task.
-     Each force task depends on the cell hierarchy tasks and unlocks the kick task
+     Each force task depends on the cell hierarchy tasks and unlocks the kick
+     task
      of its super-cell. */
   engine_make_extra_hydroloop_tasks(e);
 
@@ -1571,7 +1571,7 @@ int engine_marktasks(struct engine *e) {
       }
 
       /* Single-cell task? */
-      else if (t->type == task_type_self || t->type == task_type_hierarchy ||
+      else if (t->type == task_type_self || t->type == task_type_ghost ||
                (t->type == task_type_sub && t->cj == NULL)) {
 
         /* Set this task's skip. */
@@ -1935,7 +1935,7 @@ void engine_init_particles(struct engine *e) {
     mask |= 1 << task_type_self;
     mask |= 1 << task_type_pair;
     mask |= 1 << task_type_sub;
-    mask |= 1 << task_type_hierarchy;
+    mask |= 1 << task_type_ghost;
 
     submask |= 1 << task_subtype_density;
   }
@@ -2115,7 +2115,7 @@ void engine_step(struct engine *e) {
     mask |= 1 << task_type_self;
     mask |= 1 << task_type_pair;
     mask |= 1 << task_type_sub;
-    mask |= 1 << task_type_hierarchy;
+    mask |= 1 << task_type_ghost;
 
     submask |= 1 << task_subtype_density;
     submask |= 1 << task_subtype_force;
diff --git a/src/runner.c b/src/runner.c
index ea647e2369b5cff784bf1ee85a7a0b757736332f..088c3f5583cad9bf8e58bbb7acbd7187d70859df 100644
--- a/src/runner.c
+++ b/src/runner.c
@@ -629,7 +629,7 @@ void runner_doinit(struct runner *r, struct cell *c, int timer) {
  * @param c The cell.
  */
 
-void runner_do_cellhierarchy(struct runner *r, struct cell *c) {
+void runner_do_ghost(struct runner *r, struct cell *c) {
 
   struct part *p, *parts = c->parts;
   struct xpart *xp, *xparts = c->xparts;
@@ -652,7 +652,7 @@ void runner_do_cellhierarchy(struct runner *r, struct cell *c) {
   /* Recurse? */
   if (c->split) {
     for (int k = 0; k < 8; k++)
-      if (c->progeny[k] != NULL) runner_do_cellhierarchy(r, c->progeny[k]);
+      if (c->progeny[k] != NULL) runner_do_ghost(r, c->progeny[k]);
     return;
   }
 
@@ -774,7 +774,7 @@ void runner_do_cellhierarchy(struct runner *r, struct cell *c) {
   if (count)
     message("Smoothing length failed to converge on %i particles.", count);
 
-  TIMER_TOC(timer_do_cellhierarchy);
+  TIMER_TOC(timer_do_ghost);
 }
 
 /**
@@ -1348,8 +1348,8 @@ void *runner_main(void *data) {
         case task_type_init:
           runner_doinit(r, ci, 1);
           break;
-        case task_type_hierarchy:
-          runner_do_cellhierarchy(r, ci);
+        case task_type_ghost:
+          runner_do_ghost(r, ci);
           break;
         case task_type_drift:
           runner_dodrift(r, ci, 1);
diff --git a/src/scheduler.c b/src/scheduler.c
index 9175e0858033ca0de60df4440721564c1dacebe1..d1d343240b37f5afd5f41fecacf106b0e85f726f 100644
--- a/src/scheduler.c
+++ b/src/scheduler.c
@@ -916,7 +916,7 @@ void scheduler_reweight(struct scheduler *s) {
           } else
             t->weight += 1 * wscale * t->ci->count * t->ci->count;
           break;
-        case task_type_hierarchy:
+        case task_type_ghost:
           if (t->ci == t->ci->super) t->weight += wscale * t->ci->count;
           break;
         case task_type_kick:
@@ -1082,7 +1082,7 @@ void scheduler_enqueue(struct scheduler *s, struct task *t) {
     switch (t->type) {
       case task_type_self:
       case task_type_sort:
-      case task_type_hierarchy:
+      case task_type_ghost:
       case task_type_kick:
       case task_type_drift:
       case task_type_init:
diff --git a/src/space.c b/src/space.c
index 005fb07532aafdfdb98069da9fd5209c84099714..d87107a80add1b04674b74a8af55004427ddeac3 100644
--- a/src/space.c
+++ b/src/space.c
@@ -350,7 +350,7 @@ void space_regrid(struct space *s, double cell_max, int verbose) {
       s->cells[k].count = 0;
       s->cells[k].gcount = 0;
       s->cells[k].init = NULL;
-      s->cells[k].hierarchy = NULL;
+      s->cells[k].ghost = NULL;
       s->cells[k].drift = NULL;
       s->cells[k].kick = NULL;
       s->cells[k].super = &s->cells[k];
@@ -452,8 +452,7 @@ void space_rebuild(struct space *s, double cell_max, int verbose) {
       const int t = ind[k];
       ind[k] = ind[nr_parts];
       ind[nr_parts] = t;
-    }
-    else {
+    } else {
       /* Increment when not exchanging otherwise we need to retest "k".*/
       k++;
     }
@@ -488,8 +487,7 @@ void space_rebuild(struct space *s, double cell_max, int verbose) {
       const int t = gind[k];
       gind[k] = gind[nr_gparts];
       gind[nr_gparts] = t;
-    }
-    else {
+    } else {
       /* Increment when not exchanging otherwise we need to retest "k".*/
       k++;
     }
@@ -508,7 +506,6 @@ void space_rebuild(struct space *s, double cell_max, int verbose) {
     }
   }*/
 
-
   /* Exchange the strays, note that this potentially re-allocates
      the parts arrays. */
   size_t nr_parts_exchanged = s->nr_parts - nr_parts;
diff --git a/src/task.c b/src/task.c
index 70bfab6577340cfa89c8e3a0628440ac7254a61f..31c2bfcb3462b9f91547ebd631f645e190c07143 100644
--- a/src/task.c
+++ b/src/task.c
@@ -48,7 +48,7 @@
 /* Task type names. */
 const char *taskID_names[task_type_count] = {
     "none",          "sort",      "self",       "pair",       "sub",
-    "init",          "hierarchy",     "drift",      "kick",       "send",
+    "init",          "ghost",     "drift",      "kick",       "send",
     "recv",          "grav_pp",   "grav_mm",    "grav_up",    "grav_down",
     "grav_external", "part_sort", "gpart_sort", "split_cell", "rewait"};
 
diff --git a/src/task.h b/src/task.h
index 78d0b4faf00c126fbd09c64f5a31f9cd23ca0265..25cc886f4b38456a0431fb6c7d0b7b1864053dd9 100644
--- a/src/task.h
+++ b/src/task.h
@@ -39,7 +39,7 @@ enum task_types {
   task_type_pair,
   task_type_sub,
   task_type_init,
-  task_type_hierarchy,
+  task_type_ghost,
   task_type_drift,
   task_type_kick,
   task_type_send,
diff --git a/src/timers.h b/src/timers.h
index aba56e42ebb64016a179fb65e5c15d84e74c2018..92b685ebe9b11d49c4703e5837d35cffdca81c4d 100644
--- a/src/timers.h
+++ b/src/timers.h
@@ -45,7 +45,7 @@ enum {
   timer_dosub_force,
   timer_dosub_grav,
   timer_dopair_subset,
-  timer_do_cellhierarchy,
+  timer_do_ghost,
   timer_dorecv_cell,
   timer_gettask,
   timer_qget,