Split out human writer to separate module