All functions require documentation. Also for internal functions we prefix with a `_`