add redis store; bonus functional user map :D