added function literals and closure