implemented request cache