tighten up some boundary cases