<?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>24126</value>
    <shrsOrPrnAmt>
      <sshPrnamt>92992</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>92992</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JOHNSON &amp; JOHNSON COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>478160104</cusip>
    <value>38150</value>
    <shrsOrPrnAmt>
      <sshPrnamt>441165</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>441165</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>1435</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6439</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>6438</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MEDTRONIC PLC SHS</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>G5960L103</cusip>
    <value>32931</value>
    <shrsOrPrnAmt>
      <sshPrnamt>438292</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>438292</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MERCK &amp; CO INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>58933Y105</cusip>
    <value>17229</value>
    <shrsOrPrnAmt>
      <sshPrnamt>294464</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>294464</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>1660</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3879</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>3878</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NORDSON CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>655663102</cusip>
    <value>32420</value>
    <shrsOrPrnAmt>
      <sshPrnamt>289725</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>289725</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DIAGEO PLC SPON ADR NEW</nameOfIssuer>
    <titleOfClass>ADR</titleOfClass>
    <cusip>25243Q205</cusip>
    <value>24109</value>
    <shrsOrPrnAmt>
      <sshPrnamt>247813</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>247813</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VERIZON COMMUNICATIONS INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>92343V104</cusip>
    <value>15902</value>
    <shrsOrPrnAmt>
      <sshPrnamt>391676</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>391675</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CHUBB LIMITED COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>H1467J104</cusip>
    <value>15401</value>
    <shrsOrPrnAmt>
      <sshPrnamt>179816</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>179815</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FEDEX CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>31428X106</cusip>
    <value>28161</value>
    <shrsOrPrnAmt>
      <sshPrnamt>243060</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>243060</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PEPSICO INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>713448108</cusip>
    <value>33725</value>
    <shrsOrPrnAmt>
      <sshPrnamt>379932</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>379932</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>KIMBERLY-CLARK CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>494368103</cusip>
    <value>10513</value>
    <shrsOrPrnAmt>
      <sshPrnamt>115760</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>115760</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HONEYWELL INTL INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>438516106</cusip>
    <value>36378</value>
    <shrsOrPrnAmt>
      <sshPrnamt>362359</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>362358</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HOME DEPOT INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>437076102</cusip>
    <value>47343</value>
    <shrsOrPrnAmt>
      <sshPrnamt>428204</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>428204</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AUTOMATIC DATA PROCESSING INC</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>053015103</cusip>
    <value>39457</value>
    <shrsOrPrnAmt>
      <sshPrnamt>401217</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>401216</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UGI CORP NEW COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>902681105</cusip>
    <value>6330</value>
    <shrsOrPrnAmt>
      <sshPrnamt>136692</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>136692</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ADOBE SYSTEMS INCORPORATED COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>00724F101</cusip>
    <value>10451</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17845</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>17845</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>49563</value>
    <shrsOrPrnAmt>
      <sshPrnamt>276581</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>276580</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CONSTELLATION BRANDS INC CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>21036P108</cusip>
    <value>7235</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30933</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>30932</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MICROSOFT CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>594918104</cusip>
    <value>76120</value>
    <shrsOrPrnAmt>
      <sshPrnamt>685841</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>685841</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>RPM INTL INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>749685103</cusip>
    <value>36480</value>
    <shrsOrPrnAmt>
      <sshPrnamt>577086</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>577085</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>V F CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>918204108</cusip>
    <value>19478</value>
    <shrsOrPrnAmt>
      <sshPrnamt>322517</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>322516</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EXPONENT INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>30214U102</cusip>
    <value>28236</value>
    <shrsOrPrnAmt>
      <sshPrnamt>559975</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>559974</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BOEING CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>097023105</cusip>
    <value>21279</value>
    <shrsOrPrnAmt>
      <sshPrnamt>136537</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>136537</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NEXTERA ENERGY INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>65339F101</cusip>
    <value>2162</value>
    <shrsOrPrnAmt>
      <sshPrnamt>29505</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>29505</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>71886</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>71886</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMPHENOL CORP NEW CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>032095101</cusip>
    <value>8324</value>
    <shrsOrPrnAmt>
      <sshPrnamt>121682</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>121682</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALCON AG ORD SHS</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>H01301128</cusip>
    <value>5794</value>
    <shrsOrPrnAmt>
      <sshPrnamt>129445</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>129445</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SOUTH JERSEY INDS INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>838518108</cusip>
    <value>15282</value>
    <shrsOrPrnAmt>
      <sshPrnamt>683825</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>683825</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>8857</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30789</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>30788</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 1000 GROWTH ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C680</cusip>
    <value>2961</value>
    <shrsOrPrnAmt>
      <sshPrnamt>42415</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>42415</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 1000 VALUE ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C714</cusip>
    <value>1049</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15077</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>15076</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 2000 GROWTH ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C623</cusip>
    <value>529</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2330</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>2330</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PPL CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>69351T106</cusip>
    <value>5802</value>
    <shrsOrPrnAmt>
      <sshPrnamt>255305</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>255304</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD RUSSELL 2000 VALUE ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>92206C649</cusip>
    <value>390</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2681</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>2680</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES RUSSELL 2000 ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>464287655</cusip>
    <value>415</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1811</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>1811</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AFLAC INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>001055102</cusip>
    <value>22525</value>
    <shrsOrPrnAmt>
      <sshPrnamt>530349</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>530349</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>470</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2707</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>2707</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VISA INC COM CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>92826C839</cusip>
    <value>21507</value>
    <shrsOrPrnAmt>
      <sshPrnamt>201408</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>201407</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD VALUE INDEX FUND</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>922908744</cusip>
    <value>890</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6472</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>6471</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FACEBOOK INC CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>30303M102</cusip>
    <value>11899</value>
    <shrsOrPrnAmt>
      <sshPrnamt>34221</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>34221</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JOHNSON CTLS INTL PLC SHS</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>G51502105</cusip>
    <value>21156</value>
    <shrsOrPrnAmt>
      <sshPrnamt>371161</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>371160</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>14163</value>
    <shrsOrPrnAmt>
      <sshPrnamt>128836</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>128836</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ARTESIAN RES CORP CL A</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>043113208</cusip>
    <value>3565</value>
    <shrsOrPrnAmt>
      <sshPrnamt>96954</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>96954</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CHURCH &amp; DWIGHT INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>171340102</cusip>
    <value>23526</value>
    <shrsOrPrnAmt>
      <sshPrnamt>393971</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>393971</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>STRYKER CORPORATION COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>863667101</cusip>
    <value>34758</value>
    <shrsOrPrnAmt>
      <sshPrnamt>358919</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>358919</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>837</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7433</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>7432</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DISCOVER FINL SVCS COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>254709108</cusip>
    <value>1093</value>
    <shrsOrPrnAmt>
      <sshPrnamt>138257</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>138256</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MCDONALDS CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>580135101</cusip>
    <value>35684</value>
    <shrsOrPrnAmt>
      <sshPrnamt>322376</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>322375</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMETEK INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>031100100</cusip>
    <value>7870</value>
    <shrsOrPrnAmt>
      <sshPrnamt>58952</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>58951</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>2254</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16935</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>16934</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AT&amp;T INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>00206R102</cusip>
    <value>14900</value>
    <shrsOrPrnAmt>
      <sshPrnamt>576074</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>576074</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>360</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>4000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SALESFORCE COM INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>79466L302</cusip>
    <value>12481</value>
    <shrsOrPrnAmt>
      <sshPrnamt>51097</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>51097</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MCCORMICK &amp; CO INC COM NON VTG</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>579780206</cusip>
    <value>33385</value>
    <shrsOrPrnAmt>
      <sshPrnamt>552640</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>552639</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>THERMO FISHER SCIENTIFIC INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>883556102</cusip>
    <value>14331</value>
    <shrsOrPrnAmt>
      <sshPrnamt>28408</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>28408</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JPMORGAN CHASE &amp; CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>46625H100</cusip>
    <value>44834</value>
    <shrsOrPrnAmt>
      <sshPrnamt>545557</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>545557</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES NATIONAL MUNI BOND ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>464288414</cusip>
    <value>1227</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10468</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>10467</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD FTSE DEVELOPED MARKETS ETF</nameOfIssuer>
    <titleOfClass>ETF</titleOfClass>
    <cusip>921943858</cusip>
    <value>943</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18304</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>18304</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DANAHER CORPORATION COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>235851102</cusip>
    <value>10106</value>
    <shrsOrPrnAmt>
      <sshPrnamt>37658</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>37657</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TJX COS INC NEW COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>872540109</cusip>
    <value>5996</value>
    <shrsOrPrnAmt>
      <sshPrnamt>88933</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>88932</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BK OF AMERICA CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>060505104</cusip>
    <value>24227</value>
    <shrsOrPrnAmt>
      <sshPrnamt>710317</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>710316</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>INTERNATIONAL BUSINESS MACHS COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>459200101</cusip>
    <value>1063</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7249</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>7249</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TEXAS INSTRS INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>882508104</cusip>
    <value>48838</value>
    <shrsOrPrnAmt>
      <sshPrnamt>484485</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>484484</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PFIZER INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>717081103</cusip>
    <value>1009</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25764</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>25764</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>3M CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>88579Y101</cusip>
    <value>25535</value>
    <shrsOrPrnAmt>
      <sshPrnamt>256028</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>256027</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>2064</value>
    <shrsOrPrnAmt>
      <sshPrnamt>824</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>823</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMERICAN EXPRESS CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>025816109</cusip>
    <value>31855</value>
    <shrsOrPrnAmt>
      <sshPrnamt>411219</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>411219</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EXXON MOBIL CORP COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>30231G102</cusip>
    <value>2597</value>
    <shrsOrPrnAmt>
      <sshPrnamt>41176</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>41176</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>COLGATE PALMOLIVE CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>194162103</cusip>
    <value>21343</value>
    <shrsOrPrnAmt>
      <sshPrnamt>419037</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>419036</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>APPLE INC COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>037833100</cusip>
    <value>76596</value>
    <shrsOrPrnAmt>
      <sshPrnamt>945382</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>945382</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DISNEY WALT CO COM</nameOfIssuer>
    <titleOfClass>Stock</titleOfClass>
    <cusip>254687106</cusip>
    <value>38956</value>
    <shrsOrPrnAmt>
      <sshPrnamt>422616</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <otherManager>0</otherManager>
    <votingAuthority>
      <Sole>422616</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
</informationTable>
