add simple conditional get support; use cache - optional