add part of functional-javascript