add forceUpdate flag
add .cache fn