diff --git a/Makefile b/Makefile
index 27143cb1220409cd7d7c1649f9c837155bd59f27..1a206c3a358600fd7359dba062b4eff8dd36d28d 100644
--- a/Makefile
+++ b/Makefile
@@ -23,4 +23,4 @@ release:
 	echo "Not yet implemented."
 
 install:
-	echo: "Not relevant. Use `julia run.jl` to run Persephone."
+	echo: "Not relevant. Use `julia run.jl` to run Persefone."
diff --git a/Project.toml b/Project.toml
index 002beb729df68be2ae8edc5fba51accff9d749d7..d02153bace9d32ad9c1ca5fc75ed750eb2131093 100644
--- a/Project.toml
+++ b/Project.toml
@@ -1,4 +1,4 @@
-name = "Persephone"
+name = "Persefone"
 uuid = "039acd1d-2a07-4b33-b082-83a1ff0fd136"
 authors = ["Daniel Vedder <daniel.vedder@idiv.de>"]
 version = "0.2"
diff --git a/README.md b/README.md
index ac39053c45f15275ded714d28b7ec9059edb912e..59351c5a79b67d4be76b00abed75d26bcb88bbaa 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-# Persephone
+# Persefone
 
 **An agent-based, socio-economic-ecological model of agricultural landscapes
 in Europe under the CAP.**
 	
 ## Description
 
-Persephone models farmers' decision making and its impact on species in agricultural
+Persefone models farmers' decision making and its impact on species in agricultural
 landscapes. The aim is to investigate how policies such as the CAP influence farms and
 biodiversity.
 
@@ -35,7 +35,7 @@ This is the normal mode of operation. Simply execute `run.jl` in a terminal, typ
 where `<config>` specifies the configuration file to use. The recommended workflow is
 to copy `scr/parameters.toml` to a location of your choice and edit the copy to suit
 your requirements. The adapted config file can then be passed to `run.jl`. (If no
-configuration file is specified, Persephone will run with its default settings.)
+configuration file is specified, Persefone will run with its default settings.)
 
 The full list of commandline arguments is:
 
@@ -72,12 +72,12 @@ to import it from your own software), do the following:
 
 ```julia
 using Pkg
-Pkg.activate(".") # assuming you're in the Persephone root folder
-using Persephone
+Pkg.activate(".") # assuming you're in the Persefone root folder
+using Persefone
 ```
 
-You can then access all Persephone functions, such as `simulate()`. (See
-`src/Persephone.jl` for a list of exported functions.)
+You can then access all Persefone functions, such as `simulate()`. (See
+`src/Persefone.jl` for a list of exported functions.)
 
 ---
 
diff --git a/docs/src/adapting.md b/docs/src/adapting.md
index 7f93932c923cdbc4103fd828fe1361f36ab8c54f..9e9be3167ae27b43bdb85a2f04bf61d4867f7117 100644
--- a/docs/src/adapting.md
+++ b/docs/src/adapting.md
@@ -1,20 +1,20 @@
-# Adapting Persephone
+# Adapting Persefone
 
-A key development goal of Persephone is to be [FAIR](https://doi.org/10.1515/itit-2019-0040):
+A key development goal of Persefone is to be [FAIR](https://doi.org/10.1515/itit-2019-0040):
 *findable, accessible, interoperable, and reusable*. We aim to build a model that is both easy 
 to use and easy to adapt to new situations.
 
-There are multiple ways to adapt Persephone for a new modelling study:
+There are multiple ways to adapt Persefone for a new modelling study:
 
 ### Changing the parameters
 
-The simplest way to adapt Persephone is simply by changing the parameters.
+The simplest way to adapt Persefone is simply by changing the parameters.
 Copy `src/parameters.toml` to a new location, adjust it to your needs, and
 run the model using `julia run.jl -c <configfile>`.
 
 ### Changing the region
 
-To apply Persephone to a new region, you need to create new input maps of land
+To apply Persefone to a new region, you need to create new input maps of land
 cover and farmplots. How to do so is described [here](gis.html).
 
 *You may also need to change aspects of the `farm` submodel. This is not yet implemented.*
@@ -22,7 +22,7 @@ cover and farmplots. How to do so is described [here](gis.html).
 ### Adding new animal species
 
 To implement a new species to the `nature` submodel, add a new file to the 
-`src/nature/species` directory and `include` it in `src/Persephone.jl`,
+`src/nature/species` directory and `include` it in `src/Persefone.jl`,
 as well as adding the name of the species to the `nature.targetspecies`
 parameter. In the new file, implement the species using the [`@species`](@ref)
 syntax as described [here](species-dsl.html).
@@ -45,7 +45,7 @@ and what information is stored in the `model` object.
 
 If you want to add a new agent type, use Agents.jl's 
 [`@agent`](https://juliadynamics.github.io/Agents.jl/stable/tutorial/#Agents.@agent)
-macro. (But be aware that Persephone already has three agent types and you may encounter
+macro. (But be aware that Persefone already has three agent types and you may encounter
 [performance problems](https://juliadynamics.github.io/Agents.jl/stable/performance_tips/#Avoid-Unions-of-many-different-agent-types-(temporary!)-1).)
 Having implemented the new agent type, add it to the `model` objects type definition
 and scheduler, and write an initialisation function and a `stepagent!` function.
@@ -53,11 +53,11 @@ and scheduler, and write an initialisation function and a `stepagent!` function.
 
 ### Linking to another model
 
-Persephone can also be used as a software library and be called from another application.
+Persefone can also be used as a software library and be called from another application.
 For this purpose, it is set up as a [Julia package](https://pkgdocs.julialang.org/v1/),
 with a [module](https://docs.julialang.org/en/v1/manual/modules/) exporting various model
 functions, types, and macros (see 
-[`src/Persephone.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/Persephone.jl)).
+[`src/Persefone.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/Persephone.jl)).
 Of particular interest are the functions [`simulate`](@ref) (set up and run a complete simulation
 based on a config file), [`initialise`](@ref) (create one or more `model` objects from a
 config file), [`simulate!`](@ref) (do a simulation run with an existing `model` object),
diff --git a/docs/src/architecture.md b/docs/src/architecture.md
index 7fbbfdec8e866f9bc40c4b6d01c6b610202d457d..e44692a7e758ee7fca632aac27f0ed59df7a9d10 100644
--- a/docs/src/architecture.md
+++ b/docs/src/architecture.md
@@ -4,7 +4,7 @@
 
 !["model architecture"](assets/architecture.png)
 
-Persephone is divided into four components, three of which are semi-independent submodels:
+Persefone is divided into four components, three of which are semi-independent submodels:
 
 1. `core`: This is the foundation of the model software, which sets up and executes
    simulation runs. It also reads in the configuration file and landscape maps, and
@@ -35,7 +35,7 @@ the `Animal`s in the model landscape.
 A cursory reading of the source code will quickly show that most functions take an 
 `AgentBasedModel` object as one of their arguments. This is the key data structure 
 of [Agents.jl](https://juliadynamics.github.io/Agents.jl/stable/tutorial/#.-The-model-1),
-and holds all state that is in any way relevant to a simulation run. (Persephone has
+and holds all state that is in any way relevant to a simulation run. (Persefone has
 a strict "no global state" policy to avoid state-dependent bugs and allow parallelisation.)
 The model object gives access to all agent instances (via `model[id]`, where `id` is the
 unique identifier of this agent). It also stores the configuration (`model.settings`),
@@ -51,7 +51,7 @@ For more information about working with agent objects, see the
 The model is configured via a [TOML](https://toml.io/en/) file, the default version of which is at 
 [`src/parameters.toml`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/parameters.toml).
 An individual run can be configured using a user-defined configuration file, commandline
-arguments, or function calls (when Persephone is used as a package rather than an application).
+arguments, or function calls (when Persefone is used as a package rather than an application).
 During a model run, the [`@param`](@ref) macro can be used to access parameter values. 
 Note that parameter names are prepended with the name of the component they are associated 
 with. For example, the `outdir` parameter belongs to the `[core]` section of the TOML file, 
@@ -62,13 +62,13 @@ for details.)
 !!! info "@param and other macros"
 	As `@param(parameter)` expands to `model.settings["parameter"]`, it can obviously
 	only be used in a context where the `model` object is actually available. (This is the
-	case for most functions in Persephone, but not for all.) Similarly, many of the `nature`
+	case for most functions in Persefone, but not for all.) Similarly, many of the `nature`
 	macros depend on specific variables being available where they are called, and can
 	therefore only be used in specific contexts (this is indicated in their documentation).
 
 ### Output data 
 
-Persephone can output model data into text files with a specified
+Persefone can output model data into text files with a specified
 frequency (daily, monthly, yearly, or at the simulation end). Submodels can use
 [`newdataoutput!`](@ref) to plug into this system. For an example of how to use this, see
 [`src/nature/ecologicaldata.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/src/nature/ecologicaldata.jl). 
@@ -86,7 +86,7 @@ for details.)
 
 By default in Julia, the [random number generator](https://docs.julialang.org/en/v1/stdlib/Random/)
 (RNG) and the [system logger](https://docs.julialang.org/en/v1/stdlib/Logging/#Logging.global_logger)
-are two globally accessible variables. As Persephone needs to avoid all global data (since
+are two globally accessible variables. As Persefone needs to avoid all global data (since
 this would interfere with reproducibility in parallel runs), the `model` object stores a 
 local logger and a local RNG. The local logger generally does not change the way the 
 model uses [log statements](https://docs.julialang.org/en/v1/stdlib/Logging/), it is 
diff --git a/docs/src/crops.md b/docs/src/crops.md
index cabc94bf0d5ac990b5e8087a481e4e1a818d08d0..54fb1755397d2678c0593d4b67c29927eb4589e5 100644
--- a/docs/src/crops.md
+++ b/docs/src/crops.md
@@ -1,6 +1,6 @@
 # Crop submodel
 
-Eventually, Persephone will include a full-blown crop-growth model (an adaptation of
+Eventually, Persefone will include a full-blown crop-growth model (an adaptation of
 AquaCrop, created by the FAO). At the moment, we are only working with a very basic mock-up.
 
 ## crops.jl
@@ -9,6 +9,6 @@ This includes the types and functions needed for all crop growth model, which ar
 also referenced by the other submodels.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["crop/crops.jl"]
 ```
diff --git a/docs/src/developing.md b/docs/src/developing.md
index 8451bf76cb54028d1ba77f27ed13b5c0c8a04ad8..0f9f2e58640db056cfa8fd42314aa25d60a49a55 100644
--- a/docs/src/developing.md
+++ b/docs/src/developing.md
@@ -1,4 +1,4 @@
-# Developing Persephone
+# Developing Persefone
 
 ## Workflow
 
@@ -46,7 +46,7 @@ add `using Revise` to `.julia/config/startup.jl` to have it automatically availa
 
 ### Test
 
-Persephone uses the inbuilt Julia [testing framework](https://docs.julialang.org/en/v1/stdlib/Test/).
+Persefone uses the inbuilt Julia [testing framework](https://docs.julialang.org/en/v1/stdlib/Test/).
 All new functions should have appropriate tests written for them in the appropriate
 file in the `test` directory. (See [`test/runtests.jl`](https://git.idiv.de/xo30xoqa/persephone/-/blob/master/test/runtests.jl)
 for details.) There are three ways to run the test suite: in the terminal, executing
diff --git a/docs/src/farm.md b/docs/src/farm.md
index 2f40cfb05a6363ae64d93e15bcb21bba8d61d840..c93b8c141eabf936e87d86f0c2e76a4901b54a01 100644
--- a/docs/src/farm.md
+++ b/docs/src/farm.md
@@ -1,6 +1,6 @@
 # Farm submodel
 
-Eventually, Persephone will include multiple farm-decision submodels. At the moment, 
+Eventually, Persefone will include multiple farm-decision submodels. At the moment, 
 we are only working with a very basic mock-up.
 
 ## farm.jl
@@ -8,6 +8,6 @@ we are only working with a very basic mock-up.
 This file is responsible for managing the farm module(s).
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["farm/farm.jl"]
 ```
diff --git a/docs/src/gis.md b/docs/src/gis.md
index ac270937a2a042da4bd57bc46c199b4b4214b75f..3a263434f34b548bab3646d526235dd399a5455c 100644
--- a/docs/src/gis.md
+++ b/docs/src/gis.md
@@ -1,6 +1,6 @@
 # GIS data
 
-Persephone currently requires two separate map input files: one for land cover,
+Persefone currently requires two separate map input files: one for land cover,
 the other for field geometry. This documents describe how to obtain and process
 the data needed for each of these.
 
@@ -20,7 +20,7 @@ land cover classes:
 60: agriculture
 ```
 
-To create a Persephone map input file, you need to crop the national Mundialis
+To create a Persefone map input file, you need to crop the national Mundialis
 map to the extent that you want to simulate (suggestion: approx. 10x10km is a 
 reasonable size).
 
@@ -30,11 +30,11 @@ region. Then go to `Raster -> Extraction -> Clip Raster by Extent`. Select
 the Mundialis map as the input layer, set the clipping extent by choosing your
 region vector layer under `Calculate from Layer` and specify the output
 file name before clicking `Run`. This will generate a TIF file that you can
-pass to Persephone as the `landcovermap` parameter.
+pass to Persefone as the `landcovermap` parameter.
 
 ## Field ID maps
 
-In addition to the land cover data explained above, Persephone also needs
+In addition to the land cover data explained above, Persefone also needs
 information about agricultural field boundaries in order to assign these to the
 farming agents. Unfortunately, getting this is rather more complicated.
 
@@ -44,7 +44,7 @@ Länder. For example, you can view and download the InVeKoS data for Thüringen
 [here](https://thueringenviewer.thueringen.de/thviewer/invekos.html).
 This gives you a vector layer which can be loaded into QGIS. However, it needs
 to be converted to a raster layer and cropped to your region extent before it
-can be used in Persephone.
+can be used in Persefone.
 
 The first thing to do is to make sure that the vector layer has a numeric (!)
 field with a unique identifier for each field block (check the attribute table). 
@@ -68,6 +68,6 @@ created above - this ensures the two layers match) as the output extent. Make su
 the "fixed value to burn" is "Not set". Then choose "Georeferenced units" as the 
 "Out raster size units" and set horizontal and vertical resolution to 10.0. In 
 the advanced parameters, set the output data type to `UInt32`. Finally, enter an 
-output file name and run. The resulting TIF file can be passed to Persephone
+output file name and run. The resulting TIF file can be passed to Persefone
 as the `farmfieldmap` parameter.
 
diff --git a/docs/src/index.md b/docs/src/index.md
index 6752a6d4c0ee8a685a4935a7d6d8d977e6f27e8a..e9de026f8a9dbb6225144712f177b0856e91476e 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -1,10 +1,10 @@
 ```@meta
-CurrentModule = Persephone
+CurrentModule = Persefone
 ```
 
 # Introduction
 
-Persephone is an agent-based, socio-economic-ecological model of agricultural landscapes
+Persefone is an agent-based, socio-economic-ecological model of agricultural landscapes
 in Europe under the Common Agricultural Policy (CAP).
 
 It's aim is to investigate how policy affects farmer decision-making, and how this in turn
@@ -38,15 +38,15 @@ optional arguments:
 
 ## Model input
 
-Persephone requires three input files: a configuration file and two map files. How to generate
+Persefone requires three input files: a configuration file and two map files. How to generate
 the map files is documented [elsewhere](gis.html). The [configuration file](io.html)
 defines parameter values and looks like this (see `src/parameters.toml` for a complete list 
 of parameters):
 
 ```TOML
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
-### This is the default configuration file for Persephone, containing all model parameters.
+### This is the default configuration file for Persefone, containing all model parameters.
 ### The syntax is described here: https://toml.io/en/
 
 [core]
@@ -76,7 +76,7 @@ cropmodel = "linear" # crop growth model to use, "linear" or "aquacrop" (not yet
 
 !!! info "Parameter scanning"
 	You can set any parameter to a list of different values, e.g. `seed = [1,2,3]`.
-	Persephone will then set up and run multiple simulations, one for every possible
+	Persefone will then set up and run multiple simulations, one for every possible
 	combination of parameters that you entered (i.e. do a full-factorial simulation
 	experiment).
 
diff --git a/docs/src/io.md b/docs/src/io.md
index 3b2116629962b1a5dbe6b63e0a89cc26fea4a12f..083ce84ae72dc3cb1f53a0660e70bf61661feaba 100644
--- a/docs/src/io.md
+++ b/docs/src/io.md
@@ -6,7 +6,7 @@ any output.
 
 ## parameters.toml
 
-This is the default configuration file for Persephone, containing all model parameters.
+This is the default configuration file for Persefone, containing all model parameters.
 The syntax is described here: [https://toml.io/en/](https://toml.io/en/)
 
 DO NOT MODIFY THIS FILE FOR SIMULATION EXPERIMENTS! Instead, copy it to another directory,
@@ -15,13 +15,13 @@ modify the copy, and then pass it to the model using the `--config` parameter.
 ## input.jl
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/input.jl"]
 ```
 
 ## output.jl
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/output.jl"]
 ```
diff --git a/docs/src/nature.md b/docs/src/nature.md
index da980c45112c88dc32ea10b9dc61e7f22854ce6f..ea17ea4816d082f6ec26f2bd76214e08bd84bf29 100644
--- a/docs/src/nature.md
+++ b/docs/src/nature.md
@@ -5,7 +5,7 @@
 This file is responsible for managing the animal modules.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/nature.jl"]
 ```
 
@@ -15,7 +15,7 @@ This file contains a set of utility functions for species, including initialisat
 reproduction, and mortality.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/populations.jl"]
 ```
 
@@ -24,6 +24,6 @@ Pages = ["nature/populations.jl"]
 This file contains a set of life-history related utility functions needed by species.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/ecologicaldata.jl"]
 ```
diff --git a/docs/src/simulation.md b/docs/src/simulation.md
index 4cc75c0a0d04d1cd222c3b2da1361ea95a4b34b6..8ab547c37764c3af16a79395d3a10c53aaff9447 100644
--- a/docs/src/simulation.md
+++ b/docs/src/simulation.md
@@ -8,7 +8,7 @@ scheduling, landscape, and input/output functions.
 This file includes the basal functions for initialising and running simulations.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/simulation.jl"]
 ```
 
@@ -17,6 +17,6 @@ Pages = ["core/simulation.jl"]
 This file manages the landscape maps that underlie the model.
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["core/landscape.jl"]
 ```
diff --git a/docs/src/species-dsl.md b/docs/src/species-dsl.md
index 80932c871ef7c50571aadb553185ba5faf83a758..50c91f77436414c84929dbcb1d048bdd1d666de9 100644
--- a/docs/src/species-dsl.md
+++ b/docs/src/species-dsl.md
@@ -1,8 +1,8 @@
 # Defining new species
 
-## The Persephone species DSL
+## The Persefone species DSL
 
-In order to make implementing new species as easy as possible, Persephone includes
+In order to make implementing new species as easy as possible, Persefone includes
 a [domain-specific language](https://doi.org/10.1016/j.ecoinf.2015.02.005) (DSL)
 built from a collection of macros and functions.
 
@@ -55,7 +55,7 @@ these phases. (Technically, it defines a function that will be called daily, so
 long as the species' `phase` variable is set to the name of this phase.) Code
 in this section has access to the `model` object as well as an `animal` object,
 which is the currently active animal agent. Properties of the `animal` agent,
-regardless of whether they were defined by the user or by Persephone, can be
+regardless of whether they were defined by the user or by Persefone, can be
 accessed using the [`@trait`](@ref) macro. Within a phase block, [`@respond`](@ref) 
 can be used to define the species' response to a [`FarmEvent`](@ref) that affects 
 the species' current location, while a variety of other macros provide wrappers to 
diff --git a/docs/src/species.md b/docs/src/species.md
index 3a63759121a39c2f209b6822589236681131369d..7b6dcb2a5ebd290b91b8cb246e3f34dc642a8eca 100644
--- a/docs/src/species.md
+++ b/docs/src/species.md
@@ -1,10 +1,10 @@
 # Species
 
-The ecological submodel in Persephone simulates a range of species in agricultural landscapes.
+The ecological submodel in Persefone simulates a range of species in agricultural landscapes.
 
 ## Skylark
 
 ```@autodocs
-Modules = [Persephone]
+Modules = [Persefone]
 Pages = ["nature/species/skylark.jl"]
 ```
diff --git a/run.jl b/run.jl
index c43f62dfe1675af864d1c6f3663ec0b4e1641dcd..1e5d61f90a29912993d0e00a83e7f54d0fec468a 100755
--- a/run.jl
+++ b/run.jl
@@ -1,10 +1,10 @@
 #!/usr/bin/env julia
-# A very thin wrapper to start a Persephone simulation.
-# (This is not included in Persephone.jl in order to enable the latter to
+# A very thin wrapper to start a Persefone simulation.
+# (This is not included in Persefone.jl in order to enable the latter to
 # be used as a library, without automatically launching a simulation.)
 
 using Pkg
 Pkg.activate(".")
-using Persephone
+using Persefone
 
 @time simulate()
diff --git a/src/Persephone.jl b/src/Persefone.jl
similarity index 92%
rename from src/Persephone.jl
rename to src/Persefone.jl
index 8253c8d17b5f73500aeb6a96bccef93b36d9a2a8..c24905440d3209c3bbd93906b2455e3b74b5fefe 100644
--- a/src/Persephone.jl
+++ b/src/Persefone.jl
@@ -1,15 +1,15 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### Daniel Vedder <daniel.vedder@idiv.de>
 ### Lea Kolb <lea-deborah.kolb@idiv.de>
 ### (c) 2022-2023, licensed under the terms of the MIT license
 ###
-### This file defines the module/package for the Persephone model.
+### This file defines the module/package for the Persefone model.
 ### To run the model, either execute `run.jl` from the commandline,
 ### or import the module using your own wrapper script or software.
 ###
 
-module Persephone
+module Persefone
 
 ## define dependencies
 using
diff --git a/src/analysis/analyse_nature.R b/src/analysis/analyse_nature.R
index c176b9fe62834a04197384fcf44d12a79c859f08..979d6af0a6979379e51c0b3bbf7a112913e7f0e8 100755
--- a/src/analysis/analyse_nature.R
+++ b/src/analysis/analyse_nature.R
@@ -1,5 +1,5 @@
 #!/usr/bin/Rscript
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file visualises the output of the nature model.
 ###
diff --git a/src/core/input.jl b/src/core/input.jl
index b3730485b21c122ad720d6b9017b11678aa48152..f34ff04f364877e82b1c2ebcb2940236f3851cca 100644
--- a/src/core/input.jl
+++ b/src/core/input.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes functions for configuring the model and reading in map files.
 ###
@@ -9,7 +9,7 @@
 """
 The file that stores all default parameters: `src/parameters.toml`
 """
-const PARAMFILE = joinpath(pkgdir(Persephone), "src/parameters.toml")
+const PARAMFILE = joinpath(pkgdir(Persefone), "src/parameters.toml")
 ## (DO NOT CHANGE THIS VALUE! Instead, specify simulation-specific configuration files
 ## by using the "--configfile" commandline argument, or when invoking simulate().) 
 
@@ -89,7 +89,7 @@ function preprocessparameters(settings::Dict{String,Any}, defaultoutdir::String)
     #     @warn "To parallelise multiple simulation runs, use `julia -p <n>`."
     #     # https://docs.julialang.org/en/v1/manual/distributed-computing/#code-availability
     #     #addprocs(settings["core.processors"]; exeflags="--project")
-    #     #@everywhere include("../src/Persephone.jl")
+    #     #@everywhere include("../src/Persefone.jl")
     # end
     settings
 end
@@ -141,7 +141,7 @@ Certain software parameters can be set via the commandline.
 """
 function parsecommandline()
     versionstring = """
-            Persephone $(pkgversion(Persephone))
+            Persefone $(pkgversion(Persefone))
             © 2022-2023 Daniel Vedder, Lea Kolb (MIT license)
             https://git.idiv.de/xo30xoqa/persephone
             """
diff --git a/src/core/landscape.jl b/src/core/landscape.jl
index 2d2cbafd598f9b62696e47f78717bf37f03296a0..d6b16f608a5693dcd48027065b7d9658736f45f7 100644
--- a/src/core/landscape.jl
+++ b/src/core/landscape.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file manages the landscape maps that underlie the model.
 ###
diff --git a/src/core/output.jl b/src/core/output.jl
index b805608a53c4b122167428669072c871943f34dc..74b5b4700da7f07f1501bb749ae3e11e6c1aba14 100644
--- a/src/core/output.jl
+++ b/src/core/output.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes functions for saving the model output.
 ###
@@ -75,11 +75,11 @@ function saveinputfiles(model::AgentBasedModel)
     @debug "Setting up output directory $(@param(core.outdir))."
     currentcommit = read(`git rev-parse HEAD`, String)[1:8]
     open(joinpath(@param(core.outdir), basename(@param(core.configfile))), "w") do f
-        println(f, "#\n# --- Persephone configuration parameters ---")
+        println(f, "#\n# --- Persefone configuration parameters ---")
         println(f, "# This file was generated automatically.")
         println(f, "# Simulation run on $(string(Dates.format(Dates.now(), "d u Y HH:MM:SS"))),")
         # Record the current git commit and versions of dependencies for reproducibility
-        println(f, "# with Persephone $(pkgversion(Persephone)), git commit $(currentcommit),")
+        println(f, "# with Persefone $(pkgversion(Persefone)), git commit $(currentcommit),")
         println(f, "# running on Julia $(VERSION) with Agents.jl $(pkgversion(Agents)).\n#\n")
         if !isempty(strip(read(`git status -s`, String)))
             println(f, "# WARNING: Your repository contains uncommitted changes. This may")
diff --git a/src/core/simulation.jl b/src/core/simulation.jl
index e455fce214d3147a258e2eb3adbbfbe0378dacd7..3ee9f0e6f309010a9cbd704261ecfdb60e8ab638 100644
--- a/src/core/simulation.jl
+++ b/src/core/simulation.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes the core functions for initialising and running simulations.
 ###
@@ -11,7 +11,7 @@
 Initialise one or more model objects and carry out a full simulation experiment,
 optionally specifying a configuration file and a seed for the RNG.
 
-This is the default way to run a Persephone simulation.
+This is the default way to run a Persefone simulation.
 """
 function simulate(config::String=PARAMFILE, seed::Union{Int64,Nothing}=nothing)
     models = initialise(config, seed)
diff --git a/src/crop/crops.jl b/src/crop/crops.jl
index a16dae30d1ace24e3ea398ca4887c20d34aec7e7..301b4d765de70d6524eedeb602a970cdf143f46f 100644
--- a/src/crop/crops.jl
+++ b/src/crop/crops.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file is responsible for managing the crop growth modules.
 ###
diff --git a/src/farm/farm.jl b/src/farm/farm.jl
index 8b25abff25756388f37531074c0458b6488e688d..5a1089aced2b90eace3ef1b94ccb5fc3d90adf28 100644
--- a/src/farm/farm.jl
+++ b/src/farm/farm.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file is responsible for managing the farm module(s).
 ###
diff --git a/src/nature/ecologicaldata.jl b/src/nature/ecologicaldata.jl
index 25732522961db57ea0f2650637107dcb49922bf8..1bc11a37f9d00978bf7143718d0c0b785144e846 100644
--- a/src/nature/ecologicaldata.jl
+++ b/src/nature/ecologicaldata.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file includes the functions for collecting and saving ecological output data.
 ###
diff --git a/src/nature/nature.jl b/src/nature/nature.jl
index 4a2698f09329b37d5f5a9962ff4ab9cf1ac96cb1..3d270bbb3d5bd3278b6bd3724bd962ccc7443673 100644
--- a/src/nature/nature.jl
+++ b/src/nature/nature.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file is responsible for managing the animal modules.
 ###
@@ -138,9 +138,9 @@ macro species(name, body)
             delete!(speciesdict, $(string(name)))
             return speciesdict
         end
-        # allow species to be defined outside of the Persephone module, but still available
+        # allow species to be defined outside of the Persefone module, but still available
         # inside it (needed by `initnature!()` and `reproduce!()`)
-        (@__MODULE__() != $(esc(:Persephone))) && ($(esc(:Persephone)).$name = $(esc(name)))
+        (@__MODULE__() != $(esc(:Persefone))) && ($(esc(:Persefone)).$name = $(esc(name)))
     end
 end
 
diff --git a/src/nature/populations.jl b/src/nature/populations.jl
index 12188a2700dc32c1289e17e7d436c01ecc3aab9d..ceb31bb78cc74e88b1bf30183d60d14bb0829dfa 100644
--- a/src/nature/populations.jl
+++ b/src/nature/populations.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file contains a set of utility functions for species, including initialisation,
 ### reproduction, and mortality.
diff --git a/src/nature/species/skylark.jl b/src/nature/species/skylark.jl
index fa43378fd82a8e3352e17d9bde6f1a1bd5604243..9f90b571e1511f884fd24bab24789ff897c3064c 100644
--- a/src/nature/species/skylark.jl
+++ b/src/nature/species/skylark.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file holds the code for the Eurasian Skylark (Alauda arvensis).
 ###
diff --git a/src/nature/species/wolpertinger.jl b/src/nature/species/wolpertinger.jl
index e51a4752f5264d3706f252c9aa831999a11e2ae7..c389afdb5ae4584211c39b586f08a79f1f42bec3 100644
--- a/src/nature/species/wolpertinger.jl
+++ b/src/nature/species/wolpertinger.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file holds the code for the Wolpertinger (https://en.wikipedia.org/wiki/Wolpertinger).
 ### NOT FOR ACTUAL USE! This is of course only a test species ;-)
diff --git a/src/nature/species/wyvern.jl b/src/nature/species/wyvern.jl
index f5a8fde4e8c21b98abc814efa3a7c0c0781b6717..e6451058451fe8c096eac8d498890addee26e2cc 100644
--- a/src/nature/species/wyvern.jl
+++ b/src/nature/species/wyvern.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This file holds the code for the Wyvern (https://en.wikipedia.org/wiki/Wyvern).
 ### NOT FOR ACTUAL USE! This is of course only a test species ;-)
diff --git a/src/parameters.toml b/src/parameters.toml
index ea33de601073255b42103bae3fcd2da85ecded13..d1e3db247c2ad8f8a3c2010e86a60b8fb43bf338 100644
--- a/src/parameters.toml
+++ b/src/parameters.toml
@@ -1,6 +1,6 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
-### This is the default configuration file for Persephone, containing all model parameters.
+### This is the default configuration file for Persefone, containing all model parameters.
 ### The syntax is described here: https://toml.io/en/
 ###
 ### DO NOT MODIFY THIS FILE FOR SIMULATION EXPERIMENTS!
diff --git a/test/crop_tests.jl b/test/crop_tests.jl
index 96399903258c294bdb015b88a8a6c84e34ab8274..e7452eee69ecd5dab9f6f18d6e40d98eb58b89b2 100644
--- a/test/crop_tests.jl
+++ b/test/crop_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the crop growth model.
 ###
diff --git a/test/farm_tests.jl b/test/farm_tests.jl
index 29b5dfcf7fd7b968e9bb714dead7e704e619c7a5..33ed3365dec2dfae4fea5bbc7627c0050b776bd0 100644
--- a/test/farm_tests.jl
+++ b/test/farm_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the farm model.
 ###
diff --git a/test/io_tests.jl b/test/io_tests.jl
index 2fb71c9f13ef9bcf127680216c362b3efd03eefd..fb8c17d388861df11fb8bab8a738cc849ccd08f3 100644
--- a/test/io_tests.jl
+++ b/test/io_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This tests the core input and output functions.
 ###
diff --git a/test/landscape_tests.jl b/test/landscape_tests.jl
index e989fdb41eea1ad201b1f2a96cf9965fdd06e5e0..fb97af09fa07b1cbde704eaa05dd3a193ce0db59 100644
--- a/test/landscape_tests.jl
+++ b/test/landscape_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the core landscape functions.
 ###
diff --git a/test/nature_tests.jl b/test/nature_tests.jl
index a78b8b17bd3c11a346296a0786fa0a30ba867ba6..b357d7b53a775a21238666cc47c55a152788cad4 100644
--- a/test/nature_tests.jl
+++ b/test/nature_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the nature model (excluding individual species).
 ###
@@ -73,21 +73,21 @@ end
     @species Mermaid begin
         ageofmaturity = 2
         pesticidemortality = 1.0
-        @initialise(@habitat(@landcover() == Persephone.water), pairs=true)
+        @initialise(@habitat(@landcover() == Persefone.water), pairs=true)
         @phase life begin
-            @debug "$(Persephone.animalid(animal)) is swimming happily in its pond."
-            @respond Persephone.pesticide @kill(@trait(pesticidemortality), "poisoning")
-            @respond Persephone.harvest @setphase(drought)
+            @debug "$(Persefone.animalid(animal)) is swimming happily in its pond."
+            @respond Persefone.pesticide @kill(@trait(pesticidemortality), "poisoning")
+            @respond Persefone.harvest @setphase(drought)
             @debug "Animal: $animal"
-            if @trait(sex) == Persephone.female && @countanimals() < 3 &&
-                @trait(age) >= @trait(ageofmaturity) && @landcover() == Persephone.water
+            if @trait(sex) == Persefone.female && @countanimals() < 3 &&
+                @trait(age) >= @trait(ageofmaturity) && @landcover() == Persefone.water
                 @reproduce()
             end
         end
         @phase drought begin
             n = sum(1 for a in @neighbours(0))
-            @debug "$(Persephone.animalid(animal)) is experiencing drought with $n neighbour(s)."
-            @respond Persephone.sowing @setphase(life)
+            @debug "$(Persefone.animalid(animal)) is experiencing drought with $n neighbour(s)."
+            @respond Persefone.sowing @setphase(life)
         end
     end
 
diff --git a/test/paramscan.toml b/test/paramscan.toml
index ec44c3e14e7b53c6640e6882d8721591a3c54be1..045ed418f868e88c141955e95130378c1b585c23 100644
--- a/test/paramscan.toml
+++ b/test/paramscan.toml
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This configuration file is intended to test the parameter scanning feature.
 ###
diff --git a/test/runtests.jl b/test/runtests.jl
index 24aea56a16c6c8c40e7cadb762f8dae290a823ba..a1de751da724b45a6d3678412639a97c65e48929 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -1,6 +1,6 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
-### This is the top-level file of the Persephone test suite. Execute this to run all tests.
+### This is the top-level file of the Persefone test suite. Execute this to run all tests.
 ###
 
 using Pkg
@@ -10,14 +10,14 @@ using Agents
 using Dates
 using Logging
 using LoggingExtras
-using Persephone
+using Persefone
 using Random
 using StableRNGs
 using Test
 
-const Ps = Persephone
+const Ps = Persefone
 
-const TESTPARAMETERS = joinpath(pkgdir(Persephone), "test/test_parameters.toml")
+const TESTPARAMETERS = joinpath(pkgdir(Persefone), "test/test_parameters.toml")
 const TESTSETTINGS = Ps.getsettings(TESTPARAMETERS)
 
 """
@@ -52,7 +52,7 @@ function smalltestlandscape()
                            rng=StableRNG(TESTSETTINGS["core.seed"]), warn=false)
 end
 
-@testset "Persephone Tests" begin
+@testset "Persefone Tests" begin
     @testset "Core model" begin
         include("io_tests.jl")
         include("landscape_tests.jl")
diff --git a/test/simulation_tests.jl b/test/simulation_tests.jl
index 678bf3f86a3064c434b3438305deb7b60754dd28..07c4d1d969317610fb2847396275841778295c2c 100644
--- a/test/simulation_tests.jl
+++ b/test/simulation_tests.jl
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### These are the tests for the core simulation functions.
 ###
diff --git a/test/test_parameters.toml b/test/test_parameters.toml
index 45f37a310536899ca646a93ca61e0761eacc7609..2b2dfbee4ac5dd78e3e4241582c91a7e5bbd42d9 100644
--- a/test/test_parameters.toml
+++ b/test/test_parameters.toml
@@ -1,4 +1,4 @@
-### Persephone - a socio-economic-ecological model of European agricultural landscapes.
+### Persefone - a socio-economic-ecological model of European agricultural landscapes.
 ###
 ### This configuration file is used for the test suite.
 ###