Year: 2021

Improving Krisp’s setup flow

How I led the design of Krisp’s setup and user onboarding, enhancing clarity and increasing the user activation

Year: 2021

Improving Krisp’s setup flow

How I led the design of Krisp’s setup and user onboarding, enhancing clarity and increasing the user activation

Year: 2021

Improving Krisp’s setup flow

How I led the design of Krisp’s setup and user onboarding, enhancing clarity and increasing the user activation

As a result

+16%

Increased Activation among Zoom users

+16%

Increased Activation among Zoom users

+16%

Increased Activation among Zoom users

+16%

Increased Activation among Zoom users

+X%

Total adoption rate

+X%

Total adoption rate

+X%

Total adoption rate

+X%

Total adoption rate

My role

As the design lead, I contributed on both strategy and hands-on execution.

— Co-owned the development of the improvement with Product Manager and Engineering Lead from beginning of the project to beta release.

— Was responsible for end-to-end discovery, including research and user testing.

— Was actively involved in planning and scoping of the project.

— Collaborated with engineering, business, and marketing teams across functions.

— Following my departure from Krisp, the final release of the project was carried out by the talented designer, Eduard Hambardzumyan.

My role

As the design lead, I contributed on both strategy and hands-on execution.

— Co-owned the development of the improvement with Product Manager and Engineering Lead from beginning of the project to beta release.

— Was responsible for end-to-end discovery, including research and user testing.

— Was actively involved in planning and scoping of the project.

— Collaborated with engineering, business, and marketing teams across functions.

— Following my departure from Krisp, the final release of the project was carried out by the talented designer, Eduard Hambardzumyan.

My role

As the design lead, I contributed on both strategy and hands-on execution.

— Co-owned the development of the improvement with Product Manager and Engineering Lead from beginning of the project to beta release.

— Was responsible for end-to-end discovery, including research and user testing.

— Was actively involved in planning and scoping of the project.

— Collaborated with engineering, business, and marketing teams across functions.

— Following my departure from Krisp, the final release of the project was carried out by the talented designer, Eduard Hambardzumyan.

My role

As the design lead, I contributed on both strategy and hands-on execution.

— Co-owned the development of the improvement with Product Manager and Engineering Lead from beginning of the project to beta release.

— Was responsible for end-to-end discovery, including research and user testing.

— Was actively involved in planning and scoping of the project.

— Collaborated with engineering, business, and marketing teams across functions.

— Following my departure from Krisp, the final release of the project was carried out by the talented designer, Eduard Hambardzumyan.

Collaboration

The project spanned 3 teams and involved around 15 people, including key stakeholders such as the CEO and Head of Growth.

DRIVERS

Design Lead ← 👋 Me

Head of Product

Engineering Manager

CONTRIBUTORS

Software Engineers x 4

Illustrator

STAKEHOLDERS INVOLVED

CEO

Head of Growth

CTO

Collaboration

The project spanned 3 teams and involved around 15 people, including key stakeholders such as the CEO and Head of Growth.

DRIVERS

Design Lead ← 👋 Me

Head of Product

Engineering Manager

CONTRIBUTORS

Software Engineers x 4

Illustrator

STAKEHOLDERS INVOLVED

CEO

Head of Growth

CTO

Collaboration

The project spanned 3 teams and involved around 15 people, including key stakeholders such as the CEO and Head of Growth.

DRIVERS

Design Lead ← 👋 Me

Head of Product

Engineering Manager

CONTRIBUTORS

Software Engineers x 4

Illustrator

STAKEHOLDERS INVOLVED

CEO

Head of Growth

CTO

Collaboration

The project spanned 3 teams and involved around 15 people, including key stakeholders such as the CEO and Head of Growth.

DRIVERS

Design Lead ← 👋 Me

Head of Product

Engineering Manager

CONTRIBUTORS

Software Engineers x 4

Illustrator

STAKEHOLDERS INVOLVED

CEO

Head of Growth

CTO

01. Context

01. Context

01. Context

01. Context

What is Krisp

Krisp is an AI-powered noise cancellation app for online calls.

It removes background noise and echo in real time, functioning as a virtual microphone and speaker that integrates with any communication platform.

Revenue comes from a freemium B2C model and annual license-based B2B plans for teams.

During my time there, the company prioritised rapid user growth, with revenue generation taking a back seat in strategic decisions.

What is Krisp

Krisp is an AI-powered noise cancellation app for online calls.

It removes background noise and echo in real time, functioning as a virtual microphone and speaker that integrates with any communication platform.

Revenue comes from a freemium B2C model and annual license-based B2B plans for teams.

During my time there, the company prioritised rapid user growth, with revenue generation taking a back seat in strategic decisions.

What is Krisp

Krisp is an AI-powered noise cancellation app for online calls.

It removes background noise and echo in real time, functioning as a virtual microphone and speaker that integrates with any communication platform.

Revenue comes from a freemium B2C model and annual license-based B2B plans for teams.

During my time there, the company prioritised rapid user growth, with revenue generation taking a back seat in strategic decisions.

What is Krisp

Krisp is an AI-powered noise cancellation app for online calls.

It removes background noise and echo in real time, functioning as a virtual microphone and speaker that integrates with any communication platform.

Revenue comes from a freemium B2C model and annual license-based B2B plans for teams.

During my time there, the company prioritised rapid user growth, with revenue generation taking a back seat in strategic decisions.

What is Krisp

Krisp is an AI-powered noise cancellation app for online calls.

It removes background noise and echo in real time, functioning as a virtual microphone and speaker that integrates with any communication platform.

Revenue comes from a freemium B2C model and annual license-based B2B plans for teams.

During my time there, the company prioritised rapid user growth, with revenue generation taking a back seat in strategic decisions.

The problem

The setup wasn’t clear at all...

To make Krisp work, users need to complete a simple setup: open sound settings, select ‘Krisp Microphone’ as the microphone, and do the same for the speakers. Otherwise, noise cancellation won’t be applied.

However, due to the lack of a well-designed setup flow, many users skipped the setup, thought Krisp wasn’t working (or even considered it a scam), and eventually churned while leaving negative feedback.

The problem

The setup wasn’t clear at all...

To make Krisp work, users need to complete a simple setup: open sound settings, select ‘Krisp Microphone’ as the microphone, and do the same for the speakers. Otherwise, noise cancellation won’t be applied.

However, due to the lack of a well-designed setup flow, many users skipped the setup, thought Krisp wasn’t working (or even considered it a scam), and eventually churned while leaving negative feedback.

The problem

The setup wasn’t clear at all...

To make Krisp work, users need to complete a simple setup: open sound settings, select ‘Krisp Microphone’ as the microphone, and do the same for the speakers. Otherwise, noise cancellation won’t be applied.

However, due to the lack of a well-designed setup flow, many users skipped the setup, thought Krisp wasn’t working (or even considered it a scam), and eventually churned while leaving negative feedback.

The problem

The setup wasn’t clear at all...

To make Krisp work, users need to complete a simple setup: open sound settings, select ‘Krisp Microphone’ as the microphone, and do the same for the speakers. Otherwise, noise cancellation won’t be applied.

However, due to the lack of a well-designed setup flow, many users skipped the setup, thought Krisp wasn’t working (or even considered it a scam), and eventually churned while leaving negative feedback.

CLIENT PROBLEM

Unclear setup

Significant number of clients skipped the setup.

No validation of completed setup or failure indication

The system didn’t clearly indicate when the setup was incomplete.

CLIENT PROBLEM

Unclear setup

Significant number of clients skipped the setup.

No validation of completed setup or failure indication

The system didn’t clearly indicate when the setup was incomplete.

CLIENT PROBLEM

Unclear setup

Significant number of clients skipped the setup.

No validation of completed setup or failure indication

The system didn’t clearly indicate when the setup was incomplete.

CLIENT PROBLEM

Unclear setup

Significant number of clients skipped the setup.

No validation of completed setup or failure indication

The system didn’t clearly indicate when the setup was incomplete.

KRISP's PROBLEM

Massive user churn

Since Krisp requires proper setup to function, users who skipped the setup were unable to use the product.

Massive decline of our brand and NPS score

In turn, this negatively impacted our brand perception.

KRISP's PROBLEM

Massive user churn

Since Krisp requires proper setup to function, users who skipped the setup were unable to use the product.

Massive decline of our brand and NPS score

In turn, this negatively impacted our brand perception.

KRISP's PROBLEM

Massive user churn

Since Krisp requires proper setup to function, users who skipped the setup were unable to use the product.

Massive decline of our brand and NPS score

In turn, this negatively impacted our brand perception.

KRISP's PROBLEM

Massive user churn

Since Krisp requires proper setup to function, users who skipped the setup were unable to use the product.

Massive decline of our brand and NPS score

In turn, this negatively impacted our brand perception.

The old flow lacked clear messaging about why setup was important and how to complete it.

Research and initial analysis

What did we have before?

I insisted on starting by mapping and analyzing the entire journey—from download to first use.

The setup was only explained at the very end in a brief video that users could easily skip.

Beyond the poor messaging, the flow had other issues—like requiring sign-in even when the user had just signed up. Mapping the journey helped me align the team around a more holistic approach to onboarding.

Research and initial analysis

What did we have before?

I insisted on starting by mapping and analyzing the entire journey—from download to first use.

The setup was only explained at the very end in a brief video that users could easily skip.

Beyond the poor messaging, the flow had other issues—like requiring sign-in even when the user had just signed up. Mapping the journey helped me align the team around a more holistic approach to onboarding.

Research and initial analysis

What did we have before?

I insisted on starting by mapping and analyzing the entire journey—from download to first use.

The setup was only explained at the very end in a brief video that users could easily skip.

Beyond the poor messaging, the flow had other issues—like requiring sign-in even when the user had just signed up. Mapping the journey helped me align the team around a more holistic approach to onboarding.

Research and initial analysis

What did we have before?

I insisted on starting by mapping and analyzing the entire journey—from download to first use.

The setup was only explained at the very end in a brief video that users could easily skip.

Beyond the poor messaging, the flow had other issues—like requiring sign-in even when the user had just signed up. Mapping the journey helped me align the team around a more holistic approach to onboarding.

Very high-level user journey from sign up to setting up Krisp.

Complexity of the problem

The key setup and ‘aha’ moment happened outside our platform

Beyond better communication, how can we validate that setup is complete when the action happens outside of Krisp?

How can we help users associate the noiseless call with Krisp, when the call itself happens in Zoom, not in Krisp?

Complexity of the problem

The key setup and ‘aha’ moment happened outside our platform

Beyond better communication, how can we validate that setup is complete when the action happens outside of Krisp?

How can we help users associate the noiseless call with Krisp, when the call itself happens in Zoom, not in Krisp?

Complexity of the problem

The key setup and ‘aha’ moment happened outside our platform

Beyond better communication, how can we validate that setup is complete when the action happens outside of Krisp?

How can we help users associate the noiseless call with Krisp, when the call itself happens in Zoom, not in Krisp?

Complexity of the problem

The key setup and ‘aha’ moment happened outside our platform

Beyond better communication, how can we validate that setup is complete when the action happens outside of Krisp?

How can we help users associate the noiseless call with Krisp, when the call itself happens in Zoom, not in Krisp?

Setup journey analysis: actions and scenarios both inside and outside Krisp

The goals

Improve the messaging and guidance

I pushed for a full redesign of the end-to-end journey, not just the setup.

Mapping the full journey was key to getting buy-in.

The goals

Improve the messaging and guidance

I pushed for a full redesign of the end-to-end journey, not just the setup.

Mapping the full journey was key to getting buy-in.

The goals

Improve the messaging and guidance

I pushed for a full redesign of the end-to-end journey, not just the setup.

Mapping the full journey was key to getting buy-in.

The goals

Improve the messaging and guidance

I pushed for a full redesign of the end-to-end journey, not just the setup.

Mapping the full journey was key to getting buy-in.

Business
  1. Improve our brand perception

  1. Improve NPS score

No focus on monetisation at that stage

Business
  1. Improve our brand perception

  1. Improve NPS score

No focus on monetisation at that stage

Business
  1. Improve our brand perception

  1. Improve NPS score

No focus on monetisation at that stage

Business
  1. Improve our brand perception

  1. Improve NPS score

No focus on monetisation at that stage

Product
  1. Decrease churn at Activation stage

  1. Increase the setup completion rate

  1. Prevent use without setup

Product
  1. Decrease churn at Activation stage

  1. Increase the setup completion rate

  1. Prevent use without setup

Product
  1. Decrease churn at Activation stage

  1. Increase the setup completion rate

  1. Prevent use without setup

Product
  1. Decrease churn at Activation stage

  1. Increase the setup completion rate

  1. Prevent use without setup

Design (User outcomes)
  1. Increase user’s awareness of setup

  1. Enhance setup clarity and guidance

  1. Help users reach the ‘aha’ moment

Design (User outcomes)
  1. Increase user’s awareness of setup

  1. Enhance setup clarity and guidance

  1. Help users reach the ‘aha’ moment

Design (User outcomes)
  1. Increase user’s awareness of setup

  1. Enhance setup clarity and guidance

  1. Help users reach the ‘aha’ moment

Design (User outcomes)
  1. Increase user’s awareness of setup

  1. Enhance setup clarity and guidance

  1. Help users reach the ‘aha’ moment

02. Initial experiments

02. Initial experiments

02. Initial experiments

02. Initial experiments

Experiment N1

Improving the user awareness of setup importance

I collaborated with the Marketing team to determine the optimal placement of the key message.

We decided to display initial instructions on the Homepage and Download pages, anticipating that the concept of mandatory setup might raise questions for some users.

Experiment N1

Improving the user awareness of setup importance

I collaborated with the Marketing team to determine the optimal placement of the key message.

We decided to display initial instructions on the Homepage and Download pages, anticipating that the concept of mandatory setup might raise questions for some users.

Experiment N1

Improving the user awareness of setup importance

I collaborated with the Marketing team to determine the optimal placement of the key message.

We decided to display initial instructions on the Homepage and Download pages, anticipating that the concept of mandatory setup might raise questions for some users.

Experiment N1

Improving the user awareness of setup importance

I collaborated with the Marketing team to determine the optimal placement of the key message.

We decided to display initial instructions on the Homepage and Download pages, anticipating that the concept of mandatory setup might raise questions for some users.

Positioning the messaging
Positioning the messaging
Positioning the messaging
Positioning the messaging

To alleviate concerns, we emphasised that the process is quick, simple, and nearly effortless, consisting of just two steps.

Experiment N2

Prevent users from using Krisp without proper setup

During our initial phase, we haven’t yet implemented a way to automatically verify whether users have completed the setup.

As a starting point, we’ve decided to target users who skipped the setup modal.

Experiment N2

Prevent users from using Krisp without proper setup

During our initial phase, we haven’t yet implemented a way to automatically verify whether users have completed the setup.

As a starting point, we’ve decided to target users who skipped the setup modal.

Experiment N2

Prevent users from using Krisp without proper setup

During our initial phase, we haven’t yet implemented a way to automatically verify whether users have completed the setup.

As a starting point, we’ve decided to target users who skipped the setup modal.

Experiment N2

Prevent users from using Krisp without proper setup

During our initial phase, we haven’t yet implemented a way to automatically verify whether users have completed the setup.

As a starting point, we’ve decided to target users who skipped the setup modal.

The solution
The solution
The solution
The solution

An overlay was shown in the app for users who closed the setup modal, prompting them to complete it in-app.

Additionally, we've implemented a rewarding message upon setup completion and removed the frustrating sign-up requirement to download the app.

Results from initial iterations
Results from initial iterations
Results from initial iterations
Results from initial iterations

Three set of quick experiments boosted setup completion rate by ~5%.

POSITIVE

+5.3% setup completion 🎉 🎉 🎉

We observed an improvement in completion rates.

POSITIVE

+5.3% setup completion 🎉 🎉 🎉

We observed an improvement in completion rates.

POSITIVE

+5.3% setup completion 🎉 🎉 🎉

We observed an improvement in completion rates.

POSITIVE

+5.3% setup completion 🎉 🎉 🎉

We observed an improvement in completion rates.

03. Designing the setup

03. Designing the setup

03. Designing the setup

03. Designing the setup

Solving the key challenge

How can Krisp detect if it’s selected as the mic and speaker in Zoom?

As mentioned earlier, the critical setup actions happened outside Krisp — making it hard to validate success

During this phase, our goal was to surface a clear success signal inside the app, even though the configuration was happening in Zoom.

Solving the key challenge

How can Krisp detect if it’s selected as the mic and speaker in Zoom?

As mentioned earlier, the critical setup actions happened outside Krisp — making it hard to validate success

During this phase, our goal was to surface a clear success signal inside the app, even though the configuration was happening in Zoom.

Solving the key challenge

How can Krisp detect if it’s selected as the mic and speaker in Zoom?

As mentioned earlier, the critical setup actions happened outside Krisp — making it hard to validate success

During this phase, our goal was to surface a clear success signal inside the app, even though the configuration was happening in Zoom.

Solving the key challenge

How can Krisp detect if it’s selected as the mic and speaker in Zoom?

As mentioned earlier, the critical setup actions happened outside Krisp — making it hard to validate success

During this phase, our goal was to surface a clear success signal inside the app, even though the configuration was happening in Zoom.

Aligning with engineering team
Aligning with engineering team
Aligning with engineering team
Aligning with engineering team

Collaborating with engineers early on led us to the solution.

They explained that Krisp’s noise cancellation model includes a Signal Detection Module, which can detect when a calling app is sending audio to Krisp.

We realised we could surface this detection in the UI to confirm setup success.

A deeper understanding of how Krisp detects sound helped us arrive at an effective solution.

Trying various ideas

Idea 1: Magic setup

During the ideation with Product Lead and Engineers we had three main ideas: “Magic” Setup, Step by step wizard guide and One-page guide.

Trying various ideas

Idea 1: Magic setup

During the ideation with Product Lead and Engineers we had three main ideas: “Magic” Setup, Step by step wizard guide and One-page guide.

Trying various ideas

Idea 1: Magic setup

During the ideation with Product Lead and Engineers we had three main ideas: “Magic” Setup, Step by step wizard guide and One-page guide.

Trying various ideas

Idea 1: Magic setup

During the ideation with Product Lead and Engineers we had three main ideas: “Magic” Setup, Step by step wizard guide and One-page guide.

The idea
The idea
The idea
The idea

Magic Setup aimed to remove manual setup—one click would auto-set Krisp as the default mic and speaker

Why it didn’t work? ❌
Why it didn’t work? ❌
Why it didn’t work? ❌
Why it didn’t work? ❌

It clashed with Bluetooth or custom devices and reset on reboot.

Idea 2: Step-by-step guide

We also designed a guided setup with live detection, starting with Zoom(used by 51% of our users).

Idea 2: Step-by-step guide

We also designed a guided setup with live detection, starting with Zoom(used by 51% of our users).

Idea 2: Step-by-step guide

We also designed a guided setup with live detection, starting with Zoom(used by 51% of our users).

Idea 2: Step-by-step guide

We also designed a guided setup with live detection, starting with Zoom(used by 51% of our users).

The idea
The idea
The idea
The idea

Users see a small window with animated instructions.

As they complete each step, the wizard automatically progresses to the next one.

Why it didn’t work? ❌
Why it didn’t work? ❌
Why it didn’t work? ❌
Why it didn’t work? ❌

During user test 4/5 users found hidden steps intimidating, which made the setup feel longer and less effortless than intended.

The idea that worked

Idea 3: Single page setup

I decided to move forward with the next idea we had: one-page setup.

It was solving user’s concerns and overall was an easy nice and clear solution that proved to work well during test.

The idea that worked

Idea 3: Single page setup

I decided to move forward with the next idea we had: one-page setup.

It was solving user’s concerns and overall was an easy nice and clear solution that proved to work well during test.

The idea that worked

Idea 3: Single page setup

I decided to move forward with the next idea we had: one-page setup.

It was solving user’s concerns and overall was an easy nice and clear solution that proved to work well during test.

The idea that worked

Idea 3: Single page setup

I decided to move forward with the next idea we had: one-page setup.

It was solving user’s concerns and overall was an easy nice and clear solution that proved to work well during test.

The beta version

The beta version

Publishing the beta
Publishing the beta
Publishing the beta
Publishing the beta

The beta release for Zoom on Windows saw a 16% increase in activation among users in that segment.

POSITIVE

+16% activation among Zoom users

The beta was tested with Zoom users and demonstrated a positive impact.

+X% Activation among all users

The release led to a measurable improvement in global user activation.

POSITIVE

+16% activation among Zoom users

The beta was tested with Zoom users and demonstrated a positive impact.

+X% Activation among all users

The release led to a measurable improvement in global user activation.

POSITIVE

+16% activation among Zoom users

The beta was tested with Zoom users and demonstrated a positive impact.

+X% Activation among all users

The release led to a measurable improvement in global user activation.

POSITIVE

+16% activation among Zoom users

The beta was tested with Zoom users and demonstrated a positive impact.

+X% Activation among all users

The release led to a measurable improvement in global user activation.

The final version

The project was fully completed after I left Krisp

The new design team introduced a more streamlined version with a refreshed UI.

To try the setup, go to My Account → Set up a meeting tool.

The final version

The project was fully completed after I left Krisp

The new design team introduced a more streamlined version with a refreshed UI.

To try the setup, go to My Account → Set up a meeting tool.

The final version

The project was fully completed after I left Krisp

The new design team introduced a more streamlined version with a refreshed UI.

To try the setup, go to My Account → Set up a meeting tool.

The final version

The project was fully completed after I left Krisp

The new design team introduced a more streamlined version with a refreshed UI.

To try the setup, go to My Account → Set up a meeting tool.

04. Final results

04. Final results

04. Final results

04. Final results

All time results
All time results
All time results
All time results

+X%

Setup completion rate

Growth among Zoom users

+X%

Setup completion rate

Growth among Zoom users

+X%

Setup completion rate

Growth among Zoom users

+X%

Setup completion rate

Growth among Zoom users

-X%

Churn rate

Adoption rate among all users

-X%

Churn rate

Adoption rate among all users

-X%

Churn rate

Adoption rate among all users

-X%

Churn rate

Adoption rate among all users

+X%

NPS score

Net Promoter Score improved

+X%

NPS score

Net Promoter Score improved

+X%

NPS score

Net Promoter Score improved

+X%

NPS score

Net Promoter Score improved

Impact on users

A system that guides users, prevents errors, and communicates effectively.

The redesigned setup system reduced uncertainty and friction, resulting in a significantly smoother experience throughout the entire user journey.

Impact on users

A system that guides users, prevents errors, and communicates effectively.

The redesigned setup system reduced uncertainty and friction, resulting in a significantly smoother experience throughout the entire user journey.

Impact on users

A system that guides users, prevents errors, and communicates effectively.

The redesigned setup system reduced uncertainty and friction, resulting in a significantly smoother experience throughout the entire user journey.

Impact on users

A system that guides users, prevents errors, and communicates effectively.

The redesigned setup system reduced uncertainty and friction, resulting in a significantly smoother experience throughout the entire user journey.

05. Reflection

05. Reflection

05. Reflection

05. Reflection

The challenges and learnings

Key learnings

The project was a very interesting one. I’ve learned how to collaborate with engineers more closely and involve them in the UX improvement process.

The challenges and learnings

Key learnings

The project was a very interesting one. I’ve learned how to collaborate with engineers more closely and involve them in the UX improvement process.

The challenges and learnings

Key learnings

The project was a very interesting one. I’ve learned how to collaborate with engineers more closely and involve them in the UX improvement process.

The challenges and learnings

Key learnings

The project was a very interesting one. I’ve learned how to collaborate with engineers more closely and involve them in the UX improvement process.

Want to know more?

  • What were the trade-offs?

  • What would I do differently?

  • What didn’t go the way I expected?..

This is just a glimpse of the story. I'd be delighted to share the full version in a 15 mins presentation. Feel free to drop me a message.

vahan.hovh@gmail.com

OR

Want to know more?

  • What were the trade-offs?

  • What would I do differently?

  • What didn’t go the way I expected?..

This is just a glimpse of the story. I'd be delighted to share the full version in a 15 mins presentation. Feel free to drop me a message.

vahan.hovh@gmail.com

OR

Want to know more?

  • What were the trade-offs?

  • What would I do differently?

  • What didn’t go the way I expected?..

This is just a glimpse of the story. I'd be delighted to share the full version in a 15 mins presentation. Feel free to drop me a message.

vahan.hovh@gmail.com

OR

Want to know more?

  • What were the trade-offs?

  • What would I do differently?

  • What didn’t go the way I expected?..

This is just a glimpse of the story. I'd be delighted to share the full version in a 15 mins presentation. Feel free to drop me a message.

vahan.hovh@gmail.com

OR

2025. Vahan Hovhannisyan

All rights reserved

2025. Vahan Hovhannisyan

All rights reserved

2025. Vahan Hovhannisyan

All rights reserved

2025. Vahan Hovhannisyan

All rights reserved