I have some (silly) implementation of integer math with strings myself.
I used advanced records to "hide"the internal implementation.
As a result I was able to overload operators (+, -, *, **, div, mod, :=, =, <, >, <>) so I can simply do something like:
var
A, B, C: TBigInt;
begin
...
C := A + B;
if C < Googol then ;
Bart