add cache control support