Update from lunaryorn/blog@5e05d0d110ffd19cb53006f4e7b5c83ee27e076b