edge case catching