wrapped cache calls in a class_exists check
move request class code to sub class so apps can override request