Add docs, timeout config, better failure handling