added socket timeout
switched to native directory walking implementation