You've got a bunch of functions that update the same data in different ways. From a scalability standpoint, you should make all of those happen in parallel rather than in serial, and modify a single userData object in the lexical scope (to keep from overwriting data).