add output cache