node created 2018/11/05
by Douglas Crockford