<?xml version="1.0" ?>
<proxyVoteTable xmlns="http://www.sec.gov/edgar/document/npxproxy/informationtable">
  <proxyTable>
    <issuerName>THERMON GROUP HOLDINGS, INC.</issuerName>
    <isin>US88362T1034</isin>
    <meetingDate>07/28/2025</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>668138</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>668138</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>MRC GLOBAL INC.</issuerName>
    <isin>US55345K1034</isin>
    <meetingDate>09/09/2025</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>978343</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>978343</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>KENNAMETAL INC.</issuerName>
    <isin>US4891701009</isin>
    <meetingDate>10/28/2025</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>266186</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>266186</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>APTIV PLC</issuerName>
    <isin>JE00BTDN8H13</isin>
    <meetingDate>04/29/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>261739</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>261739</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>BOISE CASCADE COMPANY</issuerName>
    <isin>US09739D1000</isin>
    <meetingDate>04/30/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>152383</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>152383</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>AMN HEALTHCARE SERVICES, INC.</issuerName>
    <isin>US0017441017</isin>
    <meetingDate>05/01/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>310859</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>310859</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>BERKSHIRE HATHAWAY INC.</issuerName>
    <isin>US0846707026</isin>
    <meetingDate>05/02/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>2</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>2</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>ENERFLEX LTD.</issuerName>
    <isin>CA29269R1055</isin>
    <meetingDate>05/06/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1664794</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>1664794</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>LKQ CORPORATION</issuerName>
    <isin>US5018892084</isin>
    <meetingDate>05/06/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>292593</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>292593</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>PASON SYSTEMS INC.</issuerName>
    <isin>CA7029251088</isin>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1659861</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>1659861</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>FRANKLIN ELECTRIC CO., INC.</issuerName>
    <isin>US3535141028</isin>
    <meetingDate>05/08/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>26677</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>26677</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>INNOSPEC INC.</issuerName>
    <isin>US45768S1050</isin>
    <meetingDate>05/08/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>63964</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>63964</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>INSIGHT ENTERPRISES, INC.</issuerName>
    <isin>US45765U1034</isin>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>241997</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>241997</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>SUPERIOR PLUS CORP.</issuerName>
    <isin>CA86828P1036</isin>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>2005171</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>2005171</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>BLUELINX HOLDINGS</issuerName>
    <isin>US09624H2085</isin>
    <meetingDate>05/14/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>130737</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>130737</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>FULGENT GENETICS, INC.</issuerName>
    <isin>US3596641098</isin>
    <meetingDate>05/14/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>23788</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>23788</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>NATIONAL PRESTO INDUSTRIES, INC.</issuerName>
    <isin>US6372151042</isin>
    <meetingDate>05/19/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>103409</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>103409</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>DNOW INC.</issuerName>
    <isin>US67011P1003</isin>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>815808</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>815808</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>HNI CORPORATION</issuerName>
    <isin>US4042511000</isin>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>373336</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>373336</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>AEBI SCHMIDT HOLDING AG</issuerName>
    <isin>CH0027352993</isin>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1849647</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>1849647</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>PHINIA INC.</issuerName>
    <isin>US71880K1016</isin>
    <meetingDate>05/22/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>171436</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>171436</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>THERMON GROUP HOLDINGS, INC.</issuerName>
    <isin>US88362T1034</isin>
    <meetingDate>05/27/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>822574</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>822574</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>MCGRATH RENTCORP</issuerName>
    <isin>US5805891091</isin>
    <meetingDate>06/03/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>72566</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>72566</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>RESIDEO TECHNOLOGIES, INC.</issuerName>
    <isin>US76118Y1047</isin>
    <meetingDate>06/03/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>249819</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>249819</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>SENSATA TECHNOLOGIES HOLDING PLC</issuerName>
    <isin>GB00BFMBMT84</isin>
    <meetingDate>06/09/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>354950</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>354950</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>DXP ENTERPRISES, INC.</issuerName>
    <isin>US2333774071</isin>
    <meetingDate>06/12/2026</meetingDate>
    <voteDescription>Compensation of executive office</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>65941</sharesVoted>
    <sharesOnLoan>0.00</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>65941</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
</proxyVoteTable>
