Mainly done by @ThiefOfTime. This is a rebase on current main and also contains a small commit finalizing this MR.
main
Closes #6 (closed)