added cache on video()