handle zero crossing - untested