edge conditions are annoying