add cache and overwrite option