©2024 Peter Ljunglöf, open source code on GitHub