implemented request timeout