add configurable timeout