fork instead of poll