Archived source code at time of publication: http://doi.org/10.5281/zenodo.3676908 4