Visual Tools
Calculators
Tables
Mathematical Keyboard
Converters
Other Tools


Piecewise Functions






Different Rules for Different Regions

Not every function follows a single formula across its entire domain. Tax rates change at income thresholds. Shipping costs jump at weight limits. A ball's height follows one equation while rising and another while falling. These situations demand functions that switch rules depending on where the input lands.

A piecewise function divides its domain into intervals, assigning a different formula to each piece. The function is defined everywhere it needs to be, but no single expression covers all cases. Instead, a collection of expressions — each with its own territory — combines to form one coherent function.

Key Terms

Core

Piecewise Function— multiple formulas, each governing a different part of the domain
Domain— the union of all intervals covered by the pieces
Range— the union of each piece's outputs on its interval

Related Types

Absolute Value Function— the most familiar piecewise function, with two linear pieces meeting at a vertex
Constant Function— each piece of a step function is constant


See All Function Definitions →


What is a Piecewise Function

A piecewise function is defined by multiple formulas, each applying to a different part of the domain. Rather than one rule governing all inputs, separate rules govern separate intervals.

The function remains a function — each input still produces exactly one output. But which formula produces that output depends on where the input falls.

A simple example:

f(x)={x+1if x<0x2if x≥0f(x) = \begin{cases} x + 1 & \text{if } x < 0 \\ x^2 & \text{if } x \geq 0 \end{cases}


For negative inputs, use x+1x + 1. For non-negative inputs, use x2x^2. At x=−3x = -3, the output is −3+1=−2-3 + 1 = -2. At x=2x = 2, the output is 22=42^2 = 4. At x=0x = 0, the boundary, the condition x≥0x \geq 0 applies, giving 02=00^2 = 0.

Each piece can be any type of function — linear, quadratic, constant, radical, or otherwise. The pieces join together at boundary points, sometimes connecting smoothly, sometimes jumping abruptly.
f(x) = x + 1 for x < 0 and x^2 for x >= 0, evaluated at -3, 0 and 2xy−4−3−2−1123−3−2−1123456x + 1 for x < 0x² for x ≥ 0f(−3) = −2f(2) = 4f(0) = 0: x ≥ 0 owns 0(0, 1) open: not usedTwo formulas on two intervals, still one output per input
One function, two formulas

The section's example: x + 1 for x < 0 (blue) and x² for x ≥ 0 (navy). Each input falls in exactly one interval, so exactly one formula runs: f(−3) = −2 from the first, f(2) = 4 from the second. At the boundary x = 0 the condition x ≥ 0 applies, so f(0) = 0; the first piece’s end at (0, 1) is open and never used.

Which formula applies is decided by the input, never by choice.

Piecewise Notation

Notation

Piecewise Notation

One function, several formulas — held together by a single brace, split apart by a boundary handshake, and drawn with a two-dot code. The grammar rules (each input matches exactly one row) are what make the stack a function at all.
f(x)f(x) and evaluation come from function notation; the inequality signs and chains in the conditions from inequality notation; the intervals they encode from domain notation.
{2xx<05x≥0\begin{cases} 2x & x < 0 \\ 5 & x \geq 0 \end{cases}
f defined by cases
The single left brace stacks formula–condition rows and means "use the row whose condition holds". No right brace ever closes it — the layout itself, produced by the cases environment in LaTeX, is the notation.
CasesRows read "formula, if condition" — two rows or ten, the grammar is identical; the conditions must be mutually exclusive and cover the whole domain, or the stack stops defining a function.
Do not confuseSet braces. The same glyph collects members in {2,5,7}\{2, 5, 7\} — there a brace pair encloses a finite set; here one unpaired brace selects a row. Twins in shape, strangers in meaning.
x<1x < 1 · x≥1x \geq 1
x below one; x at least one
The boundary handshake: adjacent conditions split each cut point so it belongs to exactly one row — strict on one side, or-equal on the other. Which row owns the boundary is a decision the inequality symbols record.
CasesCompound conditions chain — 1≤x<41 \leq x < 4, the chained inequality doing interval work inline; at evaluation time the handshake picks the piece, the drill of Evaluating Piecewise Functions below.
Do not confuseSymmetric inclusion. Writing x≤1x \leq 1 and x≥1x \geq 1 on adjacent rows double-books the boundary — legal only when both formulas agree there, a silent contradiction when they do not.
∙\bullet · ∘\circ
solid dot in, open dot out
The graphical half of the handshake: a solid dot marks an included endpoint, an open circle an excluded one — the number-line code of domain notation, promoted to curve endpoints in Graphing Piecewise Functions below.
CasesAt each jump of a discontinuous graph, one solid and one open dot share a vertical line — the picture of exactly-one-row membership; two solid dots stacked vertically draw something that fails to be a function.
Do not confuseThe composition ring. The open dot on a graph is a hole, not the ∘\circ of composition — position separates them: one sits on a curve, the other between function names.

Evaluating Piecewise Functions

To evaluate a piecewise function at a specific input:

Step 1: Determine which condition the input satisfies.

Step 2: Use the corresponding formula to compute the output.

Only one piece applies to each input. The other formulas are irrelevant for that evaluation.

Let f(x)={3x+2if x<1x2−1if x≥1f(x) = \begin{cases} 3x + 2 & \text{if } x < 1 \\ x^2 - 1 & \text{if } x \geq 1 \end{cases}

Find f(−2)f(-2): Since −2<1-2 < 1, use 3x+23x + 2. f(−2)=3(−2)+2=−4f(-2) = 3(-2) + 2 = -4.

Find f(1)f(1): Since 1≥11 \geq 1, use x2−1x^2 - 1. f(1)=1−1=0f(1) = 1 - 1 = 0.

Find f(4)f(4): Since 4≥14 \geq 1, use x2−1x^2 - 1. f(4)=16−1=15f(4) = 16 - 1 = 15.

Boundary points require attention. The condition that includes the boundary (with ≤\leq or ≥\geq) determines which formula to use. At x=1x = 1 above, the condition x≥1x \geq 1 applies, not x<1x < 1.

Errors often occur at boundaries when the wrong piece is selected. Always check the inequality symbols carefully.

Graphing Piecewise Functions

To graph a piecewise function, graph each piece on its designated interval, then combine them.

Step 1: Identify each piece and its interval.

Step 2: Graph each piece as if it were defined everywhere, but only draw the portion within its interval.

Step 3: Mark endpoints appropriately — solid dot for included endpoints, open dot for excluded endpoints.

For f(x)={x+3if x<12x−1if x≥1f(x) = \begin{cases} x + 3 & \text{if } x < 1 \\ 2x - 1 & \text{if } x \geq 1 \end{cases}:

The first piece is a line with slope 11, drawn for x<1x < 1. At x=1x = 1, this piece gives 1+3=41 + 3 = 4, but x=1x = 1 is excluded, so place an open dot at (1,4)(1, 4).

The second piece is a line with slope 22, drawn for x≥1x \geq 1. At x=1x = 1, this piece gives 2(1)−1=12(1) - 1 = 1, and x=1x = 1 is included, so place a solid dot at (1,1)(1, 1).

The graph shows two line segments that do not connect — there is a jump at x=1x = 1 from height 11 to (approaching) height 44.

The visual reveals discontinuities. Pieces that connect smoothly indicate continuity at that boundary. Pieces that don't connect indicate a jump.
Graphing x + 3 for x < 1 and 2x - 1 for x >= 1xy−3−2−11234−11234567x + 3 for x < 12x − 1 for x ≥ 1(1, 4) excluded: open dot(1, 1) included: solid dotEach line kept only on its interval; the dots show who owns x = 1
Graph each piece on its own interval

Each line is drawn as if it ran everywhere (faint dashes), then only its own interval is kept. At x = 1 the first piece would give 4, but x = 1 is excluded, so (1, 4) gets an open dot; the second piece gives 1 and includes x = 1, so (1, 1) gets a solid dot. The gap between the two dots is the jump.

Open and closed dots are part of the graph, not decoration: they say which piece owns each boundary.

Domain of Piecewise Functions

The domain of a piecewise function is the union of all intervals covered by its pieces.

If the pieces cover all real numbers without gaps, the domain is (−∞,∞)(-\infty, \infty).

If the pieces leave gaps, the domain excludes those intervals.

For f(x)={x2if x≤−1xif x≥0f(x) = \begin{cases} x^2 & \text{if } x \leq -1 \\ \sqrt{x} & \text{if } x \geq 0 \end{cases}:

The first piece covers (−∞,−1](-\infty, -1]. The second covers [0,∞)[0, \infty). The interval (−1,0)(-1, 0) is not covered by either piece.

Domain: (−∞,−1]∪[0,∞)(-\infty, -1] \cup [0, \infty).

Additionally, each piece must be valid on its interval. A piece involving x−3\sqrt{x - 3} on [0,5][0, 5] would require x≥3x \geq 3 for the formula to work, potentially reducing the effective domain of that piece to [3,5][3, 5].

The domain is determined by both the stated conditions and the natural restrictions of each formula. Both must be satisfied.
Domain of x^2 for x <= -1 and sqrt x for x >= 0x² covers x ≤ −1(−∞, −1]√x covers x ≥ 0[0, ∞)−4−3−2−101234Dom f: no piece covers (−1, 0)(−∞, −1] ∪ [0, ∞)includedexcludedThe domain is the union of the pieces’ intervals — gaps stay out
Two intervals, one domain with a gap

x² is used only for x ≤ −1 and √x only for x ≥ 0. Laying the two intervals on one line and keeping everything either piece covers gives (−∞, −1] ∪ [0, ∞); the inputs between −1 and 0 belong to no piece, so they are not in the domain.

Remember to intersect each interval with what its own formula allows.

Range of Piecewise Functions

The range of a piecewise function is the union of the ranges of all pieces, restricted to their respective intervals.

Each piece contributes outputs from its portion of the domain. The combined range collects all these outputs.

For f(x)={2if x<0x+1if x≥0f(x) = \begin{cases} 2 & \text{if } x < 0 \\ x + 1 & \text{if } x \geq 0 \end{cases}:

The first piece is constant at 22 for all x<0x < 0. It contributes {2}\{2\} to the range.

The second piece is linear starting at x=0x = 0. At x=0x = 0, output is 11. As x→∞x \to \infty, output →∞\to \infty. This piece contributes [1,∞)[1, \infty) to the range.

Combined range: {2}∪[1,∞)=[1,∞)\{2\} \cup [1, \infty) = [1, \infty) (since 22 is already in [1,∞)[1, \infty)).

Finding the range may require analyzing each piece separately — finding minima, maxima, and behavior on each interval — then combining results.

Discontinuities can create gaps in the range if no piece produces certain values, or they can be invisible in the range if different pieces cover those values.
Range of 2 for x < 0 and x + 1 for x >= 0 is [1, inf)xy−4−3−2−11234−1123456outputs [1, ∞)2 for x < 0x + 1 for x ≥ 0{2} is already inside [1, ∞)Range = {2} ∪ [1, ∞) = [1, ∞)
Collecting the outputs of each piece

The constant piece outputs only 2; the line x + 1, starting at (0, 1) with a solid dot, outputs every value from 1 upward. The amber bar on the y-axis is the union of the two: 2 already lies in [1, ∞), so the range is [1, ∞).

A piece's outputs can hide inside another piece's range, as the constant 2 does here.

Continuity of Piecewise Functions

A piecewise function is continuous at a boundary point if the two pieces meeting there produce the same value. The graph connects without a jump.

For continuity at x=cx = c where two pieces meet:

lim⁡x→c−f(x)=lim⁡x→c+f(x)=f(c)\lim_{x \to c^-} f(x) = \lim_{x \to c^+} f(x) = f(c)


The left piece's limit, the right piece's limit, and the actual value at cc must all agree.

For f(x)={x2if x≤24x−4if x>2f(x) = \begin{cases} x^2 & \text{if } x \leq 2 \\ 4x - 4 & \text{if } x > 2 \end{cases}:

At x=2x = 2: Left piece gives 22=42^2 = 4. Right piece as x→2+x \to 2^+ gives 4(2)−4=44(2) - 4 = 4. Both equal 44.

The function is continuous at x=2x = 2. The pieces connect.

For g(x)={x+1if x<32x−3if x≥3g(x) = \begin{cases} x + 1 & \text{if } x < 3 \\ 2x - 3 & \text{if } x \geq 3 \end{cases}:

At x=3x = 3: Left piece as x→3−x \to 3^- gives 3+1=43 + 1 = 4. Right piece gives 2(3)−3=32(3) - 3 = 3.

The limits differ (4≠34 \neq 3), so the function is discontinuous at x=3x = 3. There is a jump.

The table below collects both cases — the continuous example and the discontinuous example — with the three values that must agree for continuity and the verdict at each boundary.
Function and boundary Left limit (x → c⁻) Right limit (x → c⁺) f(c) Continuous at c?
x² (x ≤ 2), 4x − 4 (x > 2); at c = 2 4 4 4 ✓
x + 1 (x < 3), 2x − 3 (x ≥ 3); at c = 3 4 3 3 ✗
-5-335-33a jump at x = 0
x + 1 for x < 0, x − 1 for x ≥ 0: a jump at 0

The two pieces meet the boundary x = 0 at different heights, 1 from the left and −1 from the right, so the graph jumps; the open dot marks the value the left piece approaches but does not take, the closed dot the value the function actually has. Continuity at the boundary would need the two dots to coincide. Move the pieces until they meet on the piecewise function explorer.

Checking continuity at a boundary is therefore a matter of comparing two limits with one value.

Absolute Value as Piecewise

The absolute value function is the most familiar piecewise function:

∣x∣={xif x≥0−xif x<0|x| = \begin{cases} x & \text{if } x \geq 0 \\ -x & \text{if } x < 0 \end{cases}


For non-negative inputs, the output equals the input. For negative inputs, the output equals the negation of the input (making it positive).

The graph is V-shaped with vertex at the origin. The right arm has slope 11; the left arm has slope −1-1. The pieces meet at (0,0)(0, 0) and connect continuously — both pieces give 00 at x=0x = 0.

Transformed absolute value functions shift the V:

f(x)=∣x−3∣+2={(x−3)+2if x≥3−(x−3)+2if x<3={x−1if x≥3−x+5if x<3f(x) = |x - 3| + 2 = \begin{cases} (x - 3) + 2 & \text{if } x \geq 3 \\ -(x - 3) + 2 & \text{if } x < 3 \end{cases} = \begin{cases} x - 1 & \text{if } x \geq 3 \\ -x + 5 & \text{if } x < 3 \end{cases}


The vertex moves to (3,2)(3, 2).

Equations involving absolute values often require piecewise analysis. Solving ∣x−2∣=5|x - 2| = 5 means considering both pieces: x−2=5x - 2 = 5 (giving x=7x = 7) and −(x−2)=5-(x - 2) = 5 (giving x=−3x = -3).
-5-335-33the absolute value, built from two pieces
|x| as two pieces: −x then x

The left ray is the line y = −x on x < 0 and the right ray is y = x on x ≥ 0; the two pieces meet at the origin at the same height, so the V is continuous even though its formula changes there. The closed dot at 0 belongs to the right piece. Rebuild the V from its two pieces on the piecewise function explorer.

Most functions with a corner are piecewise in this same quiet way.

Step Functions

Step functions are piecewise functions where each piece is constant. The graph consists of horizontal segments with jumps between them — like a staircase.

The floor function ⌊x⌋\lfloor x \rfloor returns the greatest integer less than or equal to xx:

⌊2.7⌋=2,⌊−1.3⌋=−2,⌊5⌋=5\lfloor 2.7 \rfloor = 2, \quad \lfloor -1.3 \rfloor = -2, \quad \lfloor 5 \rfloor = 5


The graph has horizontal segments at each integer height, jumping up at each integer input. The segment at height nn covers [n,n+1)[n, n+1) — closed on the left, open on the right.

The ceiling function ⌈x⌉\lceil x \rceil returns the least integer greater than or equal to xx:

⌈2.7⌉=3,⌈−1.3⌉=−1,⌈5⌉=5\lceil 2.7 \rceil = 3, \quad \lceil -1.3 \rceil = -1, \quad \lceil 5 \rceil = 5


The segments cover (n−1,n](n-1, n] — open on the left, closed on the right.

Both functions have jump discontinuities at every integer. The domain is all real numbers; the range is all integers Z\mathbb{Z}.

Step functions model situations with discrete jumps: postage rates by weight, tax brackets, rounding rules. The table below pairs the floor and ceiling functions side by side to highlight the small but important differences between them.
Function Definition Segment shape Examples
Floor ⌊x⌋ greatest integer ≤ x horizontal segment on [n, n+1) at height n — closed left, open right ⌊2.7⌋ = 2, ⌊−1.3⌋ = −2, ⌊5⌋ = 5
Ceiling ⌈x⌉ least integer ≥ x horizontal segment on (n−1, n] at height n — open left, closed right ⌈2.7⌉ = 3, ⌈−1.3⌉ = −1, ⌈5⌉ = 5
-5-335-33the Heaviside step
The Heaviside step: −1 then 1

Each piece is a constant, so the graph is two horizontal segments with a jump of 2 at x = 0; the open and closed dots record which piece owns the boundary. Every step function is built this way, one flat piece per interval. Try the three-piece sign function on the piecewise function explorer.

Step functions model anything that changes only at thresholds.

Real-World Applications

Piecewise functions naturally model situations where rules change at thresholds.

Tax brackets: Income tax rates increase at certain income levels. Income below \10{,}000mightbetaxedat might be taxed at 10\%,incomefrom, income from \10,00010{,}000 to \40{,}000at at 20\%,andincomeabove, and income above \40,00040{,}000 at 30%30\%.

T(x)={0.10xif x≤100001000+0.20(x−10000)if 10000<x≤400007000+0.30(x−40000)if x>40000T(x) = \begin{cases} 0.10x & \text{if } x \leq 10000 \\ 1000 + 0.20(x - 10000) & \text{if } 10000 < x \leq 40000 \\ 7000 + 0.30(x - 40000) & \text{if } x > 40000 \end{cases}


Shipping costs: Packages under 11 pound cost \5.Packagesfrom. Packages from 1to to 5poundscost pounds cost \55 plus \2peradditionalpound.Packagesover per additional pound. Packages over 5poundscost pounds cost \1313 plus \1.50$ per additional pound.

Utility rates: Electricity might cost one rate for the first 500500 kWh and a higher rate beyond that threshold.

Parking fees: First hour free, next two hours at one rate, additional hours at another rate.

In each case, the rule changes at specific boundaries, and the piecewise function captures this structure mathematically. The table below collects four common application patterns with their threshold structure.
Situation Threshold(s) Piecewise structure
Tax brackets income levels (e.g., $10,000, $40,000) tax rate increases at each bracket boundary; pieces are continuous (rates align at thresholds)
Shipping costs weight bands (under 1 lb, 1–5 lb, over 5 lb) flat fee for first band, then per-unit surcharge added above
Utility rates usage tier (e.g., 500 kWh) one rate up to the tier, a higher rate beyond
Parking fees time periods (first hour, next two, beyond) different rate per time period; often a free or fixed first piece

Writing Piecewise Functions

Constructing a piecewise function from a description or graph requires identifying the pieces and their intervals.

From a graph:

Step 1: Identify distinct segments or curves.

Step 2: Determine the formula for each segment (line, parabola, constant, etc.).

Step 3: Identify the interval each segment covers, noting open or closed endpoints.

Step 4: Write the piecewise notation with each formula and its condition.

From a verbal description:

Step 1: Identify the thresholds where rules change.

Step 2: Write the formula for each region between thresholds.

Step 3: Specify conditions using inequalities.

Example: "A plumber charges \50forthefirsthourand for the first hour and \3030 for each additional hour."

Let C(t)C(t) be the cost for tt hours of work (t>0t > 0):

C(t)={50if 0<t≤150+30(t−1)if t>1C(t) = \begin{cases} 50 & \text{if } 0 < t \leq 1 \\ 50 + 30(t - 1) & \text{if } t > 1 \end{cases}


Simplifying the second piece: 50+30t−30=30t+2050 + 30t - 30 = 30t + 20.

C(t)={50if 0<t≤130t+20if t>1C(t) = \begin{cases} 50 & \text{if } 0 < t \leq 1 \\ 30t + 20 & \text{if } t > 1 \end{cases}
Plumber cost C(t): 50 for the first hour, then 30t + 20tC123420406080100120threshold t = 1$50 flat30t + 20: +$30 per extra hourC(3) = 110The rule changes at t = 1 hour; the cost C does not jump
The plumber's charge as a graph

C(t) = 50 for 0 < t ≤ 1 and 30t + 20 for t > 1. The flat piece is the first-hour charge; after the threshold at one hour, the line climbs $30 per hour. Both pieces give $50 at t = 1, so the graph has no jump, and three hours cost C(3) = $110.

Drawing the function is a quick check that the written pieces match the description.

Common Mistakes

Several errors recur when working with piecewise functions.

Using the wrong piece at a boundary: At x=3x = 3 with conditions x<3x < 3 and x≥3x \geq 3, the second piece applies, not the first. The inequality symbols determine which piece owns the boundary.

Overlapping conditions: Writing x≤2x \leq 2 and x≥2x \geq 2 creates overlap at x=2x = 2. Both pieces claim this input, making the function ambiguous. Use x<2x < 2 and x≥2x \geq 2, or x≤2x \leq 2 and x>2x > 2.

Gaps in conditions: Writing x<1x < 1 and x>3x > 3 leaves [1,3][1, 3] undefined. Unless this gap is intentional (limiting the domain), conditions should cover all intended inputs.

Assuming continuity: Not all piecewise functions are continuous. Checking whether pieces connect at boundaries is essential — do not assume they do.

Forgetting endpoint markers when graphing: Open and closed dots distinguish included from excluded endpoints. Without them, the graph is incomplete and potentially misleading.

Evaluating all pieces instead of one: Only the piece whose condition the input satisfies should be used. The other formulas do not apply to that input.

The table below collects each mistake with the specific problem it causes and the rule of thumb that prevents it.
Mistake What goes wrong How to avoid it
Using the wrong piece at a boundary wrong output at boundary inputs check inequality symbols — the piece with ≤ or ≥ owns the boundary
Overlapping conditions function is ambiguous where conditions overlap pair ≤ with >, or < with ≥, so each boundary lives in exactly one piece
Gaps in conditions function undefined on some intervals verify conditions cover the entire intended domain
Assuming continuity misreading behavior at boundaries always check that adjacent pieces produce the same value at the boundary
Forgetting endpoint markers graph is incomplete or misleading solid dot for included endpoint, open dot for excluded — for every piece transition
Evaluating all pieces at one input wrong answer or confusion about which output applies only the piece whose condition the input satisfies should be used

Workflow Summary

Most of the tasks on this page — evaluating a piecewise function at an input, graphing it, finding its domain or range, checking continuity at a boundary — share the same general principle: handle each piece on its own interval, then combine. The table below collects the five core tasks with the procedure for each and the pitfall to watch for, useful as a checklist when working through a new piecewise function from scratch.
Task What to do Watch out for
Evaluate at a specific input identify which condition the input satisfies; apply that formula only boundary points — the inequality symbols decide which piece owns the boundary
Graph the function graph each piece on its interval and combine use solid dots for included endpoints, open dots for excluded
Find the domain take the union of the intervals stated by the conditions also check each formula's natural restrictions (denominators, square roots, logs)
Find the range find the outputs of each piece on its interval, then take the union gaps in the range can appear if no piece covers some y-values
Check continuity at a boundary c compute left limit, right limit, and f(c) all three must agree — any mismatch is a discontinuity

Piecewise Functions FAQ

How do you evaluate a piecewise function at a point?

+
Find which condition the input satisfies, then use only that branch. Check the inequalities carefully at boundary values, since one branch usually includes the endpoint and the other excludes it. Substituting into the wrong piece, or into several pieces at once, is the usual mistake.Read more →

When do you use an open circle and when a filled one?

+
A filled circle marks an endpoint the branch includes, matching a condition written with less-than-or-equal. An open circle marks one it excludes, matching a strict inequality. At any boundary exactly one branch owns the point, so exactly one circle is filled, which is what keeps the rule single-valued.Read more →

How do you check whether a piecewise function is continuous?

+
Look only at the boundaries, since each branch is usually continuous on its own. At each boundary, evaluate the branch approaching from the left and the branch approaching from the right. Matching values mean the graph connects; different values mean a jump. A single value defined there is not enough on its own.Read more →

How is the absolute value function a piecewise function?

+
It is defined by two branches: the input itself when it is non-negative, and the negated input when it is negative. This is why the graph is a V, with the corner sitting where the two branches meet at zero. Rewriting absolute values this way is how equations containing them are usually solved.Read more →

What is the domain of a piecewise function?

+
The union of the intervals its branches cover, minus any gap none of them account for. If the conditions leave a value unassigned the function is simply undefined there. Overlapping conditions are worse: they assign two outputs to one input, which stops the rule being a function at all.Read more →