handle zero better