updated with redis