add docblocks
fix isZero function