That zipwith implementation is beyond me... and math is very cool