boundary cases and null cases