<?xml version="1.0" encoding="utf-8"?>
<informationTable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable">
  <infoTable>
    <nameOfIssuer>AbbVie Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>00287Y109</cusip>
    <value>1991</value>
    <shrsOrPrnAmt>
      <sshPrnamt>21495</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1087</Sole>
      <Shared>0</Shared>
      <None>20408</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alphabet Inc Cl A</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>02079K305</cusip>
    <value>85668</value>
    <shrsOrPrnAmt>
      <sshPrnamt>75867</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>32659</Sole>
      <Shared>0</Shared>
      <None>43208</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alphabet Inc Cl C</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>02079K107</cusip>
    <value>881</value>
    <shrsOrPrnAmt>
      <sshPrnamt>790</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>518</Sole>
      <Shared>0</Shared>
      <None>272</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amazon.com Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>023135106</cusip>
    <value>1179</value>
    <shrsOrPrnAmt>
      <sshPrnamt>694</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>543</Sole>
      <Shared>0</Shared>
      <None>151</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>American Water Works</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>030420103</cusip>
    <value>309</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3616</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3616</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amgen Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>031162100</cusip>
    <value>359</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1962</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1962</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amphenol Corp Cl A</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>032095101</cusip>
    <value>46567</value>
    <shrsOrPrnAmt>
      <sshPrnamt>534338</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>242215</Sole>
      <Shared>0</Shared>
      <None>292123</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Apple Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>037833100</cusip>
    <value>115954</value>
    <shrsOrPrnAmt>
      <sshPrnamt>626407</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>270870</Sole>
      <Shared>0</Shared>
      <None>355537</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Berkshire Hthwy Cl A</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>084670108</cusip>
    <value>3948</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>14</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Berkshire Hthwy Cl B</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>084670702</cusip>
    <value>35475</value>
    <shrsOrPrnAmt>
      <sshPrnamt>190064</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>91246</Sole>
      <Shared>0</Shared>
      <None>98818</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Biogen Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>09062X103</cusip>
    <value>482</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1664</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1339</Sole>
      <Shared>0</Shared>
      <None>325</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Boeing Co</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>097023105</cusip>
    <value>581</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1734</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>384</Sole>
      <Shared>0</Shared>
      <None>1350</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Booking Holdings</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>09857L108</cusip>
    <value>85097</value>
    <shrsOrPrnAmt>
      <sshPrnamt>41980</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17857</Sole>
      <Shared>0</Shared>
      <None>24123</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Broadridge Fin'l Solutns</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>11133T103</cusip>
    <value>32597</value>
    <shrsOrPrnAmt>
      <sshPrnamt>283208</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>129670</Sole>
      <Shared>0</Shared>
      <None>153538</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CVS Health Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>126650100</cusip>
    <value>45053</value>
    <shrsOrPrnAmt>
      <sshPrnamt>700136</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>333711</Sole>
      <Shared>0</Shared>
      <None>366425</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Celgene Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>151020104</cusip>
    <value>27409</value>
    <shrsOrPrnAmt>
      <sshPrnamt>345121</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>161015</Sole>
      <Shared>0</Shared>
      <None>184106</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cerner Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>156782104</cusip>
    <value>18467</value>
    <shrsOrPrnAmt>
      <sshPrnamt>308865</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>212789</Sole>
      <Shared>0</Shared>
      <None>96076</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Check Point Software</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>M22465104</cusip>
    <value>17528</value>
    <shrsOrPrnAmt>
      <sshPrnamt>179446</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>121074</Sole>
      <Shared>0</Shared>
      <None>58372</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Chevron Corp New</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>166764100</cusip>
    <value>530</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4195</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>4195</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Chubb Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>H1467J104</cusip>
    <value>19185</value>
    <shrsOrPrnAmt>
      <sshPrnamt>151039</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>41209</Sole>
      <Shared>0</Shared>
      <None>109829</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cisco Systems Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>17275R102</cusip>
    <value>1381</value>
    <shrsOrPrnAmt>
      <sshPrnamt>32097</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2160</Sole>
      <Shared>0</Shared>
      <None>29937</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cognizant Tech Solutns</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>192446102</cusip>
    <value>52224</value>
    <shrsOrPrnAmt>
      <sshPrnamt>661147</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>282647</Sole>
      <Shared>0</Shared>
      <None>378500</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Conocophillips</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>20825c104</cusip>
    <value>745</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10710</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>10710</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cracker Barrel Old Ctry</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>22410J106</cusip>
    <value>10402</value>
    <shrsOrPrnAmt>
      <sshPrnamt>66592</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18336</Sole>
      <Shared>0</Shared>
      <None>48256</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Del Taco Restaurants</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>245496104</cusip>
    <value>190</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13450</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>13450</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dollar Tree Stores</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>256746108</cusip>
    <value>58061</value>
    <shrsOrPrnAmt>
      <sshPrnamt>683073</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>297788</Sole>
      <Shared>0</Shared>
      <None>385285</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dr Pepper Snapple Grp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>26138E109</cusip>
    <value>478</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3921</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>241</Sole>
      <Shared>0</Shared>
      <None>3680</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ecolab Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>278865100</cusip>
    <value>42701</value>
    <shrsOrPrnAmt>
      <sshPrnamt>304295</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>136124</Sole>
      <Shared>0</Shared>
      <None>168171</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Estee Lauder Company</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>518439104</cusip>
    <value>381</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2673</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2673</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Expedia Group</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>30212P303</cusip>
    <value>23790</value>
    <shrsOrPrnAmt>
      <sshPrnamt>197942</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>47884</Sole>
      <Shared>0</Shared>
      <None>150058</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Facebook Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>30303M102</cusip>
    <value>73443</value>
    <shrsOrPrnAmt>
      <sshPrnamt>377953</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>177370</Sole>
      <Shared>0</Shared>
      <None>200583</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fastenal Company</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>311900104</cusip>
    <value>34631</value>
    <shrsOrPrnAmt>
      <sshPrnamt>719542</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>329068</Sole>
      <Shared>0</Shared>
      <None>390474</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fleetcor Technologies</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>339041105</cusip>
    <value>21607</value>
    <shrsOrPrnAmt>
      <sshPrnamt>102574</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>66875</Sole>
      <Shared>0</Shared>
      <None>35699</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Home Depot Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>437076102</cusip>
    <value>28202</value>
    <shrsOrPrnAmt>
      <sshPrnamt>144551</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>36732</Sole>
      <Shared>0</Shared>
      <None>107819</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Int'l Business Machines</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>459200101</cusip>
    <value>1363</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9760</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>730</Sole>
      <Shared>0</Shared>
      <None>9030</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Intuit Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>461202103</cusip>
    <value>22436</value>
    <shrsOrPrnAmt>
      <sshPrnamt>109817</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>74637</Sole>
      <Shared>0</Shared>
      <None>35180</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JP Morgan Chase &amp; Co</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>46625H100</cusip>
    <value>227</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2187</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1090</Sole>
      <Shared>0</Shared>
      <None>1097</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kimberly-Clark</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>494368103</cusip>
    <value>1525</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14477</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1039</Sole>
      <Shared>0</Shared>
      <None>13438</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kraft Heinz Company</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>500754106</cusip>
    <value>1736</value>
    <shrsOrPrnAmt>
      <sshPrnamt>27638</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2000</Sole>
      <Shared>0</Shared>
      <None>25638</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Littelfuse Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>537008104</cusip>
    <value>19777</value>
    <shrsOrPrnAmt>
      <sshPrnamt>86674</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>56558</Sole>
      <Shared>0</Shared>
      <None>30116</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Lowes Companies</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>548661107</cusip>
    <value>22759</value>
    <shrsOrPrnAmt>
      <sshPrnamt>238146</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>159058</Sole>
      <Shared>0</Shared>
      <None>79088</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Markel Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>570535104</cusip>
    <value>20949</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19320</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>11026</Sole>
      <Shared>0</Shared>
      <None>8294</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Marriott Int'l Inc New</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>571903202</cusip>
    <value>417</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3298</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2785</Sole>
      <Shared>0</Shared>
      <None>513</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Mastercard Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>57636Q104</cusip>
    <value>60922</value>
    <shrsOrPrnAmt>
      <sshPrnamt>310007</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>137809</Sole>
      <Shared>0</Shared>
      <None>172198</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Mcdonalds</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>580135101</cusip>
    <value>1678</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10710</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>720</Sole>
      <Shared>0</Shared>
      <None>9990</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Microsoft Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>594918104</cusip>
    <value>3548</value>
    <shrsOrPrnAmt>
      <sshPrnamt>35980</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18208</Sole>
      <Shared>0</Shared>
      <None>17772</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Middleby Corp Com</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>596278101</cusip>
    <value>43924</value>
    <shrsOrPrnAmt>
      <sshPrnamt>420650</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>194908</Sole>
      <Shared>0</Shared>
      <None>225742</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NV5 Global</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>62945V109</cusip>
    <value>203</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2935</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>345</Sole>
      <Shared>0</Shared>
      <None>2590</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nestle S A Reg B ADR</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>641069406</cusip>
    <value>1518</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19613</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1250</Sole>
      <Shared>0</Shared>
      <None>18363</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nike Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>654106103</cusip>
    <value>372</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4674</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4674</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Novo-Nordisk</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>670100205</cusip>
    <value>38795</value>
    <shrsOrPrnAmt>
      <sshPrnamt>841184</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>341750</Sole>
      <Shared>0</Shared>
      <None>499434</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Oracle Corporation</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>68389x105</cusip>
    <value>1109</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25187</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>25107</Sole>
      <Shared>0</Shared>
      <None>80</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pepsico Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>713448108</cusip>
    <value>34354</value>
    <shrsOrPrnAmt>
      <sshPrnamt>315552</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>148641</Sole>
      <Shared>0</Shared>
      <None>166911</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Petroshale Inc Com Npv</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>71676H106</cusip>
    <value>81</value>
    <shrsOrPrnAmt>
      <sshPrnamt>50000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>50000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pfizer</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>717081103</cusip>
    <value>216</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5979</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2660</Sole>
      <Shared>0</Shared>
      <None>3319</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Phillips 66</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>718546104</cusip>
    <value>53755</value>
    <shrsOrPrnAmt>
      <sshPrnamt>478637</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>203629</Sole>
      <Shared>0</Shared>
      <None>275008</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Restaurant Brands Int'l</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>76131D103</cusip>
    <value>279</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4640</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>4640</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Roper Industries</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>776696106</cusip>
    <value>326</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1202</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1202</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Royal Bank of Canada</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>780087102</cusip>
    <value>1652</value>
    <shrsOrPrnAmt>
      <sshPrnamt>21947</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1400</Sole>
      <Shared>0</Shared>
      <None>20547</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Royal Dutch Shell Cl A</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>780259206</cusip>
    <value>1335</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19295</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>19295</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sherwin Williams Co</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>824348106</cusip>
    <value>63367</value>
    <shrsOrPrnAmt>
      <sshPrnamt>155477</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>64911</Sole>
      <Shared>0</Shared>
      <None>90566</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Stanley Black &amp; Decker</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>854502101</cusip>
    <value>317</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2364</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2364</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Starbucks</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>855244109</cusip>
    <value>28768</value>
    <shrsOrPrnAmt>
      <sshPrnamt>588908</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>148409</Sole>
      <Shared>0</Shared>
      <None>440499</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TJX Companies</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>872540109</cusip>
    <value>55348</value>
    <shrsOrPrnAmt>
      <sshPrnamt>581511</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>266690</Sole>
      <Shared>0</Shared>
      <None>314821</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Texas Instruments</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>882508104</cusip>
    <value>390</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3576</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3576</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Thermo Fisher Scientific</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>883556102</cusip>
    <value>41251</value>
    <shrsOrPrnAmt>
      <sshPrnamt>199149</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>55700</Sole>
      <Shared>0</Shared>
      <None>143449</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Tractor Supply Company</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>892356106</cusip>
    <value>233</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3052</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>301</Sole>
      <Shared>0</Shared>
      <None>2751</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Union Pacific</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>907818108</cusip>
    <value>40236</value>
    <shrsOrPrnAmt>
      <sshPrnamt>283997</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>125723</Sole>
      <Shared>0</Shared>
      <None>158274</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>United Parcel Service Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>911312106</cusip>
    <value>1687</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15888</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2841</Sole>
      <Shared>0</Shared>
      <None>13047</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>United Technologies</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>913017109</cusip>
    <value>20508</value>
    <shrsOrPrnAmt>
      <sshPrnamt>164032</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>45108</Sole>
      <Shared>0</Shared>
      <None>118923</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VF Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>918204108</cusip>
    <value>250</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3075</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3075</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard FTSE Emerging Mkts</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>922042858</cusip>
    <value>363</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8620</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>8620</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Verizon Communications</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92343v104</cusip>
    <value>2051</value>
    <shrsOrPrnAmt>
      <sshPrnamt>40768</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2930</Sole>
      <Shared>0</Shared>
      <None>37838</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Visa</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92826C839</cusip>
    <value>34794</value>
    <shrsOrPrnAmt>
      <sshPrnamt>262696</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>66919</Sole>
      <Shared>0</Shared>
      <None>195777</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WEC Energy Group</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92939U106</cusip>
    <value>1449</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22415</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1650</Sole>
      <Shared>0</Shared>
      <None>20765</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Walgreens Boots Alliance</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>931427108</cusip>
    <value>24756</value>
    <shrsOrPrnAmt>
      <sshPrnamt>412507</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>100617</Sole>
      <Shared>0</Shared>
      <None>311890</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Walt Disney Co</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>254687106</cusip>
    <value>21075</value>
    <shrsOrPrnAmt>
      <sshPrnamt>201079</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>83260</Sole>
      <Shared>0</Shared>
      <None>117819</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Wells Fargo &amp; Co</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>949746101</cusip>
    <value>48232</value>
    <shrsOrPrnAmt>
      <sshPrnamt>869994</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>363903</Sole>
      <Shared>0</Shared>
      <None>506090</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Western Alliance Bancorp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>957638109</cusip>
    <value>16911</value>
    <shrsOrPrnAmt>
      <sshPrnamt>298734</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>199927</Sole>
      <Shared>0</Shared>
      <None>98807</None>
    </votingAuthority>
  </infoTable>
</informationTable>
