fix edge conditions