handle expiration within class, don't rely on predis, seems janky