found a bug in buildUserData, another reason not to use Strings here
changes based on code review