chore: use pipe