<?xml version="1.0" encoding="utf-8"?>
<informationTable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable">
  <infoTable>
    <nameOfIssuer>AMAZON COM INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>023135106</cusip>
    <value>20659</value>
    <shrsOrPrnAmt>
      <sshPrnamt>86806</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>86806</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JOHNSON &amp; JOHNSON COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>478160104</cusip>
    <value>37489</value>
    <shrsOrPrnAmt>
      <sshPrnamt>436318</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>436318</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD TOTAL STOCK MARKET INDEX FUND</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>922908769</cusip>
    <value>1327</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6420</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>6420</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MEDTRONIC PLC SHS</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>G5960L103</cusip>
    <value>31201</value>
    <shrsOrPrnAmt>
      <sshPrnamt>421923</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>421922</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MERCK &amp; CO. INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>58933Y105</cusip>
    <value>16287</value>
    <shrsOrPrnAmt>
      <sshPrnamt>283540</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>283540</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR S&amp;P 500 ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>78462F103</cusip>
    <value>1610</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4062</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>4061</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NORDSON CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>655663102</cusip>
    <value>29132</value>
    <shrsOrPrnAmt>
      <sshPrnamt>262387</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>262387</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DIAGEO PLC SPON ADR NEW</nameOfIssuer>
    <titleOfClass>ADR</titleOfClass>
    <cusip>25243Q205</cusip>
    <value>20500</value>
    <shrsOrPrnAmt>
      <sshPrnamt>227512</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>227512</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VERIZON COMMUNICATIONS INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>92343V104</cusip>
    <value>16035</value>
    <shrsOrPrnAmt>
      <sshPrnamt>381434</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>381434</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CHUBB LIMITED COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>H1467J104</cusip>
    <value>14630</value>
    <shrsOrPrnAmt>
      <sshPrnamt>168603</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>168602</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FEDEX CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>31428X106</cusip>
    <value>26657</value>
    <shrsOrPrnAmt>
      <sshPrnamt>211105</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>211105</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PEPSICO INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>713448108</cusip>
    <value>31720</value>
    <shrsOrPrnAmt>
      <sshPrnamt>365987</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>365986</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>KIMBERLY-CLARK CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>494368103</cusip>
    <value>11704</value>
    <shrsOrPrnAmt>
      <sshPrnamt>120893</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>120893</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HONEYWELL INTL INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>438516106</cusip>
    <value>35783</value>
    <shrsOrPrnAmt>
      <sshPrnamt>342403</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>342403</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HOME DEPOT INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>437076102</cusip>
    <value>46067</value>
    <shrsOrPrnAmt>
      <sshPrnamt>390451</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>390450</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AUTOMATIC DATA PROCESSING INC</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>053015103</cusip>
    <value>37659</value>
    <shrsOrPrnAmt>
      <sshPrnamt>369026</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>369025</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UGI CORP NEW COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>902681105</cusip>
    <value>5772</value>
    <shrsOrPrnAmt>
      <sshPrnamt>140739</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>140738</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ADOBE SYSTEMS INCORPORATED COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>00724F101</cusip>
    <value>7647</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16086</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>16086</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALPHABET INC CAP STK CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>02079K305</cusip>
    <value>42031</value>
    <shrsOrPrnAmt>
      <sshPrnamt>221154</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>221154</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CONSTELLATION BRANDS INC CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>21036P108</cusip>
    <value>6901</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30266</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>30265</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MICROSOFT CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>594918104</cusip>
    <value>67221</value>
    <shrsOrPrnAmt>
      <sshPrnamt>634717</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>634716</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>RPM INTL INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>749685103</cusip>
    <value>37728</value>
    <shrsOrPrnAmt>
      <sshPrnamt>567557</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>567557</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>V F CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>918204108</cusip>
    <value>18461</value>
    <shrsOrPrnAmt>
      <sshPrnamt>311409</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>311409</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EXPONENT INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>30214U102</cusip>
    <value>30428</value>
    <shrsOrPrnAmt>
      <sshPrnamt>543150</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>543149</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BOEING CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>097023105</cusip>
    <value>21853</value>
    <shrsOrPrnAmt>
      <sshPrnamt>124477</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>124476</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NEXTERA ENERGY INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>65339F101</cusip>
    <value>2177</value>
    <shrsOrPrnAmt>
      <sshPrnamt>28792</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>28791</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SCHWAB U.S. TIPS ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>808524870</cusip>
    <value>72</value>
    <shrsOrPrnAmt>
      <sshPrnamt>71542</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>71541</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMPHENOL CORP NEW CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>032095101</cusip>
    <value>6642</value>
    <shrsOrPrnAmt>
      <sshPrnamt>100688</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>100688</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALCON AG ORD SHS</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>H01301128</cusip>
    <value>5341</value>
    <shrsOrPrnAmt>
      <sshPrnamt>124343</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>124342</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SOUTH JERSEY INDS INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>838518108</cusip>
    <value>13383</value>
    <shrsOrPrnAmt>
      <sshPrnamt>675996</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>675995</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AIR PRODS &amp; CHEMS INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>009158106</cusip>
    <value>8150</value>
    <shrsOrPrnAmt>
      <sshPrnamt>28969</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>28969</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 1000 GROWTH ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C680</cusip>
    <value>2659</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10637</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>10636</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 1000 VALUE ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C714</cusip>
    <value>1004</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7556</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>7555</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 2000 GROWTH ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C623</cusip>
    <value>509</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2328</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>2328</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PPL CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>69351T106</cusip>
    <value>5818</value>
    <shrsOrPrnAmt>
      <sshPrnamt>250200</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>250200</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 2000 VALUE ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C649</cusip>
    <value>374</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2675</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>2675</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES RUSSELL 2000 ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>464287655</cusip>
    <value>399</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1807</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>1807</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AFLAC INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>001055102</cusip>
    <value>21476</value>
    <shrsOrPrnAmt>
      <sshPrnamt>513283</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>513282</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD SMALL-CAP VALUE INDEX FUND</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>922908611</cusip>
    <value>447</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2697</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>2697</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VISA INC COM CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>92826C839</cusip>
    <value>18353</value>
    <shrsOrPrnAmt>
      <sshPrnamt>177081</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>177080</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD VALUE INDEX FUND</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>922908744</cusip>
    <value>847</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6446</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>6446</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FACEBOOK INC CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>30303M102</cusip>
    <value>8757</value>
    <shrsOrPrnAmt>
      <sshPrnamt>29733</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>29733</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JOHNSON CTLS INTL PLC SHS</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>G51502105</cusip>
    <value>17017</value>
    <shrsOrPrnAmt>
      <sshPrnamt>330734</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>330733</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ACCENTURE PLC IRELAND SHS CLASS A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>G1151C101</cusip>
    <value>12420</value>
    <shrsOrPrnAmt>
      <sshPrnamt>112396</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>112396</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ARTESIAN RES CORP CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>043113208</cusip>
    <value>3716</value>
    <shrsOrPrnAmt>
      <sshPrnamt>94354</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>94354</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CHURCH &amp; DWIGHT INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>171340102</cusip>
    <value>23888</value>
    <shrsOrPrnAmt>
      <sshPrnamt>390321</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>390321</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>STRYKER CORPORATION COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>863667101</cusip>
    <value>32440</value>
    <shrsOrPrnAmt>
      <sshPrnamt>330434</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>330433</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR SSGA US SMALL CAP LOW VOLATILITY INDEX ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>78468R887</cusip>
    <value>825</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7401</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>7400</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DISCOVER FINL SVCS COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>254709108</cusip>
    <value>908</value>
    <shrsOrPrnAmt>
      <sshPrnamt>100483</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>100483</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MCDONALDS CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>580135101</cusip>
    <value>34296</value>
    <shrsOrPrnAmt>
      <sshPrnamt>304915</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>304914</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMETEK INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>031100100</cusip>
    <value>6439</value>
    <shrsOrPrnAmt>
      <sshPrnamt>50408</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>50408</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR SSGA US LARGE CAP LOW VOLATILITY INDEX ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>78468R804</cusip>
    <value>2114</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16864</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>16864</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AT&amp;T INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>00206R102</cusip>
    <value>15567</value>
    <shrsOrPrnAmt>
      <sshPrnamt>572399</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>572399</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INTERMEDIATE-TERM BOND INDEX FUND</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>921937819</cusip>
    <value>353</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3975</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>3975</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SALESFORCE COM INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>79466L302</cusip>
    <value>10160</value>
    <shrsOrPrnAmt>
      <sshPrnamt>47952</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>47952</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>THERMO FISHER SCIENTIFIC INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>883556102</cusip>
    <value>12264</value>
    <shrsOrPrnAmt>
      <sshPrnamt>26873</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>26873</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JPMORGAN CHASE &amp; CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>46625H100</cusip>
    <value>43703</value>
    <shrsOrPrnAmt>
      <sshPrnamt>504070</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>504069</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES NATIONAL MUNI BOND ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>464288414</cusip>
    <value>1254</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10804</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>10803</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD FTSE DEVELOPED MARKETS ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>921943858</cusip>
    <value>806</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16421</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>16420</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DANAHER CORPORATION COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>235851102</cusip>
    <value>8147</value>
    <shrsOrPrnAmt>
      <sshPrnamt>36198</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>36198</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TJX COS INC NEW COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>872540109</cusip>
    <value>5130</value>
    <shrsOrPrnAmt>
      <sshPrnamt>77556</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>77555</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BK OF AMERICA CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>060505104</cusip>
    <value>22440</value>
    <shrsOrPrnAmt>
      <sshPrnamt>670262</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>670262</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>INTERNATIONAL BUSINESS MACHS COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>459200101</cusip>
    <value>1050</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7881</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>7880</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TEXAS INSTRS INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>882508104</cusip>
    <value>48312</value>
    <shrsOrPrnAmt>
      <sshPrnamt>454234</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>454234</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PFIZER INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>717081103</cusip>
    <value>848</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23396</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>23395</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>3M CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>88579Y101</cusip>
    <value>24780</value>
    <shrsOrPrnAmt>
      <sshPrnamt>242563</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>242562</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALPHABET INC CAP STK CL C</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>02079K107</cusip>
    <value>1668</value>
    <shrsOrPrnAmt>
      <sshPrnamt>807</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>806</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMERICAN EXPRESS CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>025816109</cusip>
    <value>27152</value>
    <shrsOrPrnAmt>
      <sshPrnamt>350507</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>350506</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EXXON MOBIL CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>30231G102</cusip>
    <value>1860</value>
    <shrsOrPrnAmt>
      <sshPrnamt>33311</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>33311</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>COLGATE PALMOLIVE CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>194162103</cusip>
    <value>20449</value>
    <shrsOrPrnAmt>
      <sshPrnamt>410412</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>410412</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>APPLE INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>037833100</cusip>
    <value>69053</value>
    <shrsOrPrnAmt>
      <sshPrnamt>940154</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>940154</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DISNEY WALT CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>254687106</cusip>
    <value>40759</value>
    <shrsOrPrnAmt>
      <sshPrnamt>420838</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>420838</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
</informationTable>
