add breakout
change cache logic