<ARTICLE> 5 <LEGEND> THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM THE CONDENSED CONSOLIDATED BALANCE SHEETS AT JUNE 30, 1998 AND 1997 (UNAUDITED) AND THE CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS AND CASH FLOWS FOR THE SIX MONTHS ENDED JUNE 30, 1998 AND 1997 (UNAUDITED) AND IS QUALIFIED IN ITS ENTIRETY BY REFERENCE TO SUCH FINANCIAL STATEMENTS. </LEGEND> <PERIOD-TYPE> 6-MOS 6-MOS <FISCAL-YEAR-END> DEC-31-1997 DEC-31-1998 <PERIOD-END> JUN-30-1997 JUN-30-1998 <CASH> 3,651,237 5,527,946 <SECURITIES> 0 0 <RECEIVABLES> 7,550,577 7,914,478 <ALLOWANCES> 165,466 174,250 <INVENTORY> 3,059,293 3,205,945 <CURRENT-ASSETS> 15,301,823 17,536,675 <PP&E> 14,339,366 15,978,121 <DEPRECIATION> 7,708,120 8,411,122 <TOTAL-ASSETS> 33,182,031 39,130,212 <CURRENT-LIABILITIES> 5,829,760 6,297,136 <BONDS> 0 0 <PREFERRED-MANDATORY> 0 0 <PREFERRED> 0 0 <COMMON> 34,566 34,886 <OTHER-SE> 26,533,136 31,581,029 <TOTAL-LIABILITY-AND-EQUITY> 33,182,031 39,130,212 <SALES> 29,247,471 31,850,428 <TOTAL-REVENUES> 29,247,471 31,850,428 <CGS> 16,393,117 17,986,013 <TOTAL-COSTS> 9,120,448 9,697,603 <OTHER-EXPENSES> 0 0 <LOSS-PROVISION> 0 0 <INTEREST-EXPENSE> (35,371) (56,729) <INCOME-PRETAX> 3,829,125 4,234,265 <INCOME-TAX> 1,523,993 1,685,238 <INCOME-CONTINUING> 0 0 <DISCONTINUED> 0 0 <EXTRAORDINARY> 0 0 <CHANGES> 0 0 <NET-INCOME> 2,305,132 2,549,027 <EPS-PRIMARY> .67 .73 <EPS-DILUTED> .66 .71