added request timeout