made timeout available on per call basis, plus few very minor changes