Originally by Keiran King · Enhancements by Hannu Hartikainen · GitHub