implemented goroutines timeout