perl version sucked, I need to write a new one.