never return None
test with timeout option