halfway through rewriting everything to per-user tokenStore and dataStore
fix where the username param is passed from func to func