Update from lunaryorn/blog@9059eeb0747a3aee3c0d914eafc7861d1dc22576