improvment with fork