good idea doing a while, it removes special casing zero