why functional programming is awesome update