more attempt at redis refactor