https://dannorth.net/blog/cupid-for-joyful-coding/