functionaljs exercises 1-3
challenges 4 through 8