ZcashFoundation / GrantProposals-2017Q4

Submission site for Zcash Foundation grant proposals
25 stars 3 forks source link

Guarda Zcash light wallet #16

Open AndrewGuarda opened 7 years ago

AndrewGuarda commented 7 years ago

Guarda Wallet team application for Zcash foundation grants 2017Q4

Motivation and overview

We are a group of blockchain enthusiasts with background in software development and product management. We have a distributed team from EU, Russia and Ukraine. At the moment we have experts from IT, fintech, blockchain, security, marketing, design, UI/UE.

Recently we have united together to develop a project called Guarda. Mobile cryptocurrency wallet which would make using any cryptocurrency easy, accessible and secure.

Our wallet for the first currency was launched this week in Google Play

Zcash is one of our favourite blockchains thanks to technological supremacy, great development team and clear value proposition. As a team of crypto enthusiasts we believe in anonymity as key feature of decentralized currencies and blockchain technology overall. Zcash already is in our development roadmap. However development of Zcash light wallet is yet an issue due to the lack of open source mobile light wallet implementations.

Technical approach

We are guided by several core principles:

In general the wallet consists of the following parts:

High level architecture can be described as follows:

hl arch

Network HL architecture:

net hl arch

We have three basic stages for the wallet implementation.

We are developing light wallet which means that user private keys are always under the user control. The private keys are always on the customer device and managed only by user. The wallet signing a transaction on the device side and transmit the signed transaction over Internet using ssl to blockchain node.

The Guarda wallet implemented functions are:

To be implemented in following two months (before Zcash wallet to be released):

Team background and qualifications

Evaluation plan

We have quite tiny and reasonable schedule for the wallet implementation. The distributed team with a variety range of professionals gives us ability to launch in the parallel main project phases: blockchain node deployment, mobile library and wallet GUI development. We are using agile approach with continuous delivery, so in any time of moment we are ready to present our progress and performance to the Grant Review Committee.

Security considerations

Security is our priority. The light wallet approach itself is our vision for the secured blockchain wallet. The customer private keys are the most important and sensitive aspect. We store keys in OS secure storage in an encrypted form. We are using additional product features to increase the product resistance for the attacks. The team has already implemented PIN-code for the wallet access, password keyfile encyption is expected by the middle of October. At the node side we are using network security tools, like a WAF with ML.

Schedule

We are estimated the whole zcash wallet duration as 11 weeks:

Budget and justification

We have estimated preliminary costs estimation for 60K USD for the project that will cover almost all issues.

Facebook Twitter email github

tromer commented 7 years ago

Congratulations for the launch of your Ethereum wallet! Is it open-source? How much of that code will be reused for the Zcash wallet? What are your thoughts about supporting Zcash shielded transactions and z-addresses?

AndrewGuarda commented 7 years ago

Thanks! It's been a rush :) However a lot to be done in the future.

  1. For the moment not. However, we will be open sourcing all the libraries we develop for the SVP wallets (if there's none existent at the moment). The best example of such a library is web3j. The library will be available for Android and iOS.
  2. The GUI code will be reused (Business layer and UI layer on HL scheme). Most of the work is carried out in the SVP library.
  3. If we develop the wallet we will support these. That's core functionality of the Zcash blockchain. Without the support of shielded transactions, the wallet would make no sense.
tromer commented 7 years ago

@guardaco, about shielded transactions: Generating shielded transactions is currently very expensive: about 40sec on a desktop CPU (so minutes on a phone), and 3GB of application RAM (too much for most phones). https://github.com/zcash/zips/issues/104 and https://z.cash/blog/cultivating-sapling-new-crypto-foundations.html will help but are not available yet. So what are your plans for this, short term and long term?

AndrewGuarda commented 7 years ago

@tromer Thanks for the question. You're right, the shielded transaction will occupy the device resources for a long time. We are not willing to become a bleak light wallet. We are looking for the suitable UE solution in order to fulfill the customer’s expectations. In the short time terms, we’re considering to use one of the following approaches:

  1. The shielded transactions are available for all devices. It sounds like a doubtful idea, some devices probably can be stucked, anyway we need to check it. We’re going to perform the test/benchmarking how it will work in order to evaluate this approach.

  2. The shielded transactions will be available for the powerful devices only. We’ll rate the devices based on it’s hardware. The shielded transactions will be available only for the high-rated devices with suitable transaction calculation time.

  3. Spreading the calculations between the customer device and guarda server. We’ll use a secure way to communicate with server to keep the privacy.

We’ll choose one of the mentioned above approaches (or tune it) based on R&D results. It should meet our expectations for reasonable shielded transactions implementation.

We are going to use further/ongoing tools from zcash foundation to improve the UE in the long time terms.

acityinohio commented 6 years ago

Every informal proposal has multiple reviews by the review committee. The reviews are being collected and discussed in a private google doc (the 5 reviewers all have edit access to it, no one else can view it). By way of early, informal feedback, the reviewers have made a list of projects that they consider leading candidates for grant funding.

In that vein, your project was selected as one of the leading candidates, and the review committee encourages you to submit a full proposal by October 6th and looks forward to reviewing it.

AndrewGuarda commented 6 years ago

Hey @acityinohio it's really great to hear that community has chose our project as short-listed one. Could you clarify the structure, content for the great full proposal or just give us any tips how to create it.

tromer commented 6 years ago

The full submission should be a single file attached to this Issue, structured as explained in https://github.com/ZcashFoundation/GrantProposals-2017Q4. I see you've already followed this structure, so just double-check it and put a copy as an attachment here (so we can refer to a specific, time-stamped version).

tromer commented 6 years ago

@guardaco The tentative $60k budget is a large fraction of the total funds available for the 2017 Q4 Grants round, and this affects the probability of funding the proposal.

Is it feasible to break the work into two stages, allowing the committee to fund only the first stage in the current Grants round, and hopefully fund the second stage in the next Grants round? If so, please include both stages in your proposal, but demarcate their schedule and budget. The first stage should still be meaningful and useful by itself.

Also, please clarify your position on open-source distribution of the code. Is it accurate to say that the server-side code and client-side library code will be open sourced, but the client-side GUI will be proprietary? In this case, my opinion is that the GUI development costs should be excluded from the budget.

AndrewGuarda commented 6 years ago

Dera @tromer , sure, we can divide the project scope for two stages: Android (most popular) wallet & iOS wallet. Both wallets require SPV library and mobile application development, only the node setup is а common task. So we can use the mobile platform as a demarcation point. We can divide the total budget for two equal parts in this way, 30K each. Hopefully it should work.

Regarding open source policy issue - we agree to make open sources for SPV library and Server. GUI will stay our proprietary solution. We haven't included GUI in the quotation. It will be reused from our ETH project with design changes only.

acityinohio commented 6 years ago

Also just a reminder @guardaco that the submission deadline is October 6th! Please endeavor to have a final proposal submitted by then, as an attachment to this issue (and yes, it can be October 6th anywhere in the world).

AndrewGuarda commented 6 years ago

Dear Zcash team, please find attached application for the Q42017 grant.

The application for Zcash foundation grant 2017Q4.pdf

tromer commented 6 years ago

I see that there are quite a few light Zcash SPV wallets: https://www.zcashcommunity.com/wallets/ . I understand the proposal will have an open-source SPV server and library, which AFAIK none of those provides. Are there other significant differences?

AndrewGuarda commented 6 years ago

Dear @tromer, we believe that following three points will answer your question:

  1. SPV single currency wallet will definitely bring more brand awareness. Existing of Zcash-only light wallet helps blockchain to stand out of the list among other currencies. AFAIK no SPV single currency wallet is available for the moment.

  2. Our proposal includes open source option for the server side and SPV library that will drive the Zcash ecosystem services development. It can be used by the community and 3rd party developers for new exciting product launches on top of Zcash blockchain.

  3. Shielded transactions support is the key to the blockchain anonymity growth. Our proposal fulfillment can help solve the problem of efficient amount of shielded transactions which leads to even more anonymity of Zcash blockchain.

tromer commented 6 years ago

@arielgabizon and @ebfull proposed an improvement to the current Zcash code that will reduce memory consumption of the prover to around 1.4GB: https://github.com/zcash/zcash/pull/2243

That's small enough to fit on a modern Android phone with 3GB or more of RAM. (I think the Android OS will let a process allocate 1.4GB on such a phone.) Though it will still take several minutes of computation, and ~1GB of device storage for the proving key.

And this will probably be available before the other two solutions (delegated proving and Sapling).

So, how difficult would it be to take zcashd's shielded-transaction code and use it in the proposed Android SPV library? Can it be refactored into a stand-alone library? Note that Zcash's shielded-transaction code directory originated from libzerocash, which is a stand-alone library. Should such a library include more than just the shielded-transaction handling?

AndrewGuarda commented 6 years ago

Dear @tromer,
Dear zcash team.

It’s really great to know zcash still working for the performance of shielded transactions. Looks like we have a good chance to process good enough with shielded transaction using mobile light wallet.

It’s hard to make proved estimation regarding SPV library development difficulty level beforehand. The change request for the reducing of memory consumption is pending and it isn’t included in the master branch of zcash. We need to have a look in to the details of the pull request, perform necessary R&D and test it with number of devices. In the theory, it should help to solve only the issue of the optimization calculations for the shielded transaction at the device side.

We’ll release stand-alone library that will support SPV for Android. It’s not library for shielded transactions only. It will use JSON-RPC to communicate with zcash node and will support necessary methods for the light wallet:

acityinohio commented 6 years ago

@guardaco : I'm thrilled to inform you that the Grant Review committee—and the Zcash Foundation board—has tentatively approved your proposal! While the recommendations are already posted, we are planning to make a more public post tomorrow morning (November 21st) Pacific Standard Time.

Next steps: please email me josh [at] z.cash.foundation with an email address suitable as a point of contact. Due to our newfound 501(c)3 status there are additional reporting and compliance burdens that may delay or change disbursements, but we are working through them as fast as we can.

Just in case you didn't see it, please find the committee recommendation for your project below, and congratulations again!

Proposes to develop a mobile Zcash wallet for Android. While several mobile wallets are already available, this one will be tailored to Zcash in UX and capabilities, including support for shielded transactions (as soon as this becomes technically feasible via low-memory proving or Sapling). Moreover, the SPV back-end and client-side library will be released as open source, that can be used in other prospective Zcash SPV solutions.

A risk factor is the dependence of the Zcash-specific portions on code that is currently in zcashd, and will need to be refactored into libraries, forked or reimplemented; but the same issue will arise with other efforts to support the full Zcash functionality, so it's important to start tackling it.

We recommend collaboration with IDEO CoLab on the UI design.

The team has prior experience developing mobile wallets, and the budget is reasonable.

tromer commented 6 years ago

The low-memory prover is integrated into the Zcash v1.0.13 release, and with memory use around 1.4GB, in principle can be used to create shielded transactions in a mobile wallet.

AndrewGuarda commented 6 years ago

That's really awesome update. Guarda team is proud to be able to get the support from Zcash foundation. We are looking forward to the project beginning.

mineZcash commented 6 years ago

Any progress updates on this @guardaco ? Is there a github repo anywhere with your work?

AndrewGuarda commented 6 years ago

hey @mineZcash we are in progress with UI/UX at the moment. Would you like us to put updates here? It will be great to have like the weekly updates.

acityinohio commented 6 years ago

Just to add on @mineZcash's comment, would love to see a GitHub repo, updates here, and/or blog or email updates! The grant program is new and while we don't have a strict reporting/updates requirement (other than the final report six months from now) it would be great to point to progress on grants on a semi-frequent basis.

Additionally, after this point by @mineZcash in Zcash Community chat (https://chat.zcashcommunity.com/channel/the-zcash-foundation?msg=rx822kt6tscW6cAzm) it sounds like others (@hoffmabc from Open Bazaar and @jasondavies) are either working on SPV code or could benefit from it. If you've done any work, or want to contribute to theirs, I thought I would at least mention it to connect you all.

lindanlee commented 6 years ago

@guardaco, I'm a UX researcher for zcashco. If it would be beneficial, I am available to collaborate on the UI/UX of the Zcash wallet. I'd be willing to do a current UX evaluation of any prototypes, perform user research, or help design any layouts/elements that you need.

AndrewGuarda commented 6 years ago

@lindanlee Hello Linda,

Nice to meet you, I’m Andrew from Guarda team. I’m expressed Zcash foundation attitude and help for our project.

It would be nice to have your opinion about the wallet UX. You can see the current releases that are available on google play: https://play.google.com/store/apps/developer?id=guarda.co as we announced in our proposal we are going to adopt the existing UX for Zcash solution. So it will be great in case you'll be already familiar with UI/UX about 20th of January. That's approx date when we'll be ready to start the discussion about the wallet GUI.

Also you can check our roadmap at https://github.com/guardaco/zcash-SPV/issues/2

lindanlee commented 6 years ago

@guardaco, I'll check out a current release and familiarize myself before the 20th. If applicable, I'll also have any feedback ready before the discussion starts.

Are all of your wallets implemented with the same set of features/similar in layout and UX? I was planning to poke around the Bitcoin one, but let me know if I should look at another one.

Looking at the roadmap, I'd be happy to help out with steps 3. App design (UX/UE/UI) and all substeps, 5.3. GUI implementation/realization, and 6. Quality assurance, specifically with the manual testing of the application. Let me know how I can help facilitate this process (signing up for any email lists, slack channels, etc).

AndrewGuarda commented 6 years ago

@lindanlee I can recommend starting with ETH/ETC as far as it has more options in the menu, like tokens, GAS mode or Fee mode while transaction sending. So we can inherit some functionality from ETH, I guess.

Sure, I have the same opinion, we’ll glad to get your feedback on stages 3 especially. It will be very useful to involve you in UX/UI stage in that terms. I’ll send you the invitation to the design in figma or invision and we can continue a discussion on GitHub, e.g. I can create the separate issue for the design. It will be public and more relevant for the community, I hope.

lindanlee commented 6 years ago

@guardaco thanks for the heads up! I'll then start with the ETH/ETC wallet. I'm glad I asked. 👍

Sounds great. Let me know when you decide which platform you'll be using. When it is time, you can include me in the github discussion and send an invite to linda@z.cash on invision and figma.

Looking forward to syncing back later in the month!

AndrewGuarda commented 6 years ago

Hey, @lindanlee I've sent you the invitation to our issue, let's start the UX discussion there, in terms do not block thread here by many UX messages. We can put here just the UX/UI milestones

AndrewGuarda commented 6 years ago

Dear Community members,

Just brief update from Guarda Wallet team. We are moving forward into the accordance with the roadmap almost.

We've finished with Zcash node setup at our side, it's now available at zec.guarda.co

We've started the collaboration with @lindanlee , Z-cash UX expert. Linda's feedback is very helpful for our team. This week we've presented our very first ZEC wallet prototypes that have t-addr and z-addr: https://www.figma.com/file/q6OZOmsg8ot8JTXyIMUhHj/Guarda-Zcash-Wallet-(Android/iOS). UPD: Linda already left her feedback, we are working with it. The next design is in the process of development. The update will be available for comments in figma project.

This week we are planning to have a call regarding ZEC wallet with @techoluwoye from Coincentrix.io, who are got Z-cash Foundation grant for Z-cash Education Outreach. I hope we can help to make some valuable effort for Z-Cash community together.

Next week we are going to start SPV library API public discussion. We are planning to proceed in the same way as for UI issue.

I'll put all valuable updates here.

AndrewGuarda commented 6 years ago

Dear Z-Cash foundation, Dear Z-Cash Community, Guarda moved to the next project stage, we're going to implement the SPV library. We've created the discussion regarding SPV library functions and methods at https://github.com/guardaco/zcash-SPV/issues/1 It will be really nice to have feedback or comments on it. @tromer @acityinohio @mineZcash @amiller @naconner

AndrewGuarda commented 6 years ago

Dear all, We've finished beta for Zcash wallet (t-addr only at the moment). Please find the link to the beta release for Zcash community on Google Play market https://play.google.com/store/apps/details?id=com.guarda.zec Any valuable feedback is very welcome.

@tromer @acityinohio @lindanlee @mineZcash

lindanlee commented 6 years ago

Hi all. I've tested out the app, and left some feedback on this comment here: https://github.com/guardaco/zcash-SPV/issues/3#issuecomment-361363070.

In short, the app is great, mostly because the Guarda team is talented and made many great design calls along the way, and also because Zcash and Guarda were able to collaborate well during the design process. They did a great job incorporating any feedback I had for them.

Here's the comment, copy and pasted for your convenience:


@AndrewGuarda, thanks for taking the time to make the product! It is now objectively my favorite Zcash wallet on the market. I'll happily relay this to my team at Zcash.

It looks really great, and has a lot of other functionalities that other wallets do not. My favorite three things of many were: 1) incredibly quick refresh time to show transactions almost instantly, 2) include/exclude fee feature in the send UI, and 3) ability to "repeat" a transaction.

Some minor things to fix:

I don't want to write too much, but I think that I want to emphasize how much I appreciated your hard work and your attention to detail in the UI. There are so many little design decisions that you made, on your own and without my guidance, that really make this app feel intuitive. (I'll just go ahead and list a bunch off the top of my head in appreciation: your brand presence/aesthetic, PIN interface and how it re-prompts after inactivity/being sent to the background, clean transaction listing and subtle green bar to show spendable funds, your use of icons, error messaging, color, immediate feedback for successful actions, etc.) Don't let my feedback discourage you, and I do have many more things I like than I do not. :)


@tromer, I personally think that this is a great result of the foundation's funds, and I'm happy that we will be able to get a good Zcash SPV wallet on the market with the foundation's support. (Also, Zcash specifically asked them not to do zaddr support until after sapling, so there wasn't a 'failure' in deliverables on that end.)

AndrewGuarda commented 6 years ago

@lindanlee thank you so much for your feedback. It's really awesome to get such great product feedback from the foundation. Our team will definitely fix all issues, and make the wallet even better. Then we can release it in Play Market as the great result of cooperation with Zcash Foundation.

AndrewGuarda commented 6 years ago

@tromer, I personally think that this is a great result of the foundation's funds, and I'm happy that we will be able to get a good Zcash SPV wallet on the market with the foundation's support. (Also, Zcash specifically asked them not to do zaddr support until after sapling, so there wasn't a 'failure' in deliverables on that end.)

@tromer @lindanlee as far as t-addr is pretty close to the delivery, we are moving to z-addr. What do you think: maybe we should wait for Sapling before implementing zaddr? how will Sapling affect?

mineZcash commented 6 years ago

(Also, Zcash specifically asked them not to do zaddr support until after sapling, so there wasn't a 'failure' in deliverables on that end.)

@lindanlee I'm a little disappointed that Zcash Co has asked not to have z-address support yet.

I think as long as it is carefully restricted to devices that are of the correct configuration it could be good for z-address adoption. But it will certainly require testing; perhaps the app could simply limit all devices to t-addresses only unless the phone has been "whitelisted" to be compatible?

The Google app store fully supports this approach: https://support.google.com/googleplay/android-developer/answer/7353455?hl=en with options for specific device performance restrictions (ie:RAM requirements)

lindanlee commented 6 years ago

@mineZcash. I'm also not quite happy about the fact that zaddrs are not more widely supported. I think one of the really terrible things right now are that when people think they use ZEC, they assume that they're using a zaddr and getting the security properties, when they're not! Also, not having support for the distinguishing factor of your coin is a special case of "hair on fire," and I want to fix it as soon as I can.

That being said, I don't make the strategic calls. I believe that @nathan-at-least, CTO of ZEC and product owner, has explicitly said to discourage any technical work to support zaddrs until after sapling is complete. (@nathan-at-least, please confirm.)

That being said, I would be more than happy to collaborate on user interface design or user interaction norms that supports both taddrs and zaddrs. And if supporting zaddrs is as easy as "adding an if statement somewhere in the code and calling z_sendmany instead of send_many" or something along those lines, I would personally not see the harm in going ahead with that. At the time of discussion, there was a lot of talk of optimization that would need to be required for zaddrs to be feasible on mobile devices in addition to special design considerations (i.e. a popup that says, 'shielded transactions may take up to 20 minutes').

@AndrewGuarda, how many weeks of work would supporting zaddrs take for your team? @mineZcash, I like the whitelisting approach. Or, a better approach is to have the features related to zaddrs 'hidden' by default and only turned on for whitelisted compatible devices. After sapling, it'll be available by default to all. @tromer, any thoughts?

amiller commented 6 years ago

I wouldn't want Guarda to "waste" work by putting in a lot of effort to support Sprout zaddrs when Sapling is so close. On the other hand, if it could be available sooner than Sapling, it may still be worthwhile. Also, we can disagree with Zcash Co's strategic descions if we want to. :P

lindanlee commented 6 years ago

@amiller Good point. This is foundation stuff! :)

nathan-at-least commented 6 years ago

Hello! I think we got some wires crossed, and I want to clarify some things:

Finally, the Zcash Company has no authority over the Foundation or Guarda, and it's an open source permissionless protocol. ;-)

(I personally would love a mobile wallet with Sprout support, but that's my own opinion.)

nathan-at-least commented 6 years ago

Oh, another detail about Z2 addresses is that they will be smaller, and that might make them more convenient for UX design.

lindanlee commented 6 years ago

@nathan-at-least, thanks for the clarification. I learned some things I didn't know.

Now I'm personally on board with supporting z1 sprout addresses. 🏆

Now someone like @amiller, @tromer, or @AndrewGuarda needs to decide they want to do the thing. Keep me posted! I'm available as a resource and would love to keep co-designing.

AndrewGuarda commented 6 years ago

Thanks for your explanation, @nathan-at-least Just to give you a brief update on how our z-addr wallet development is going: Following our initial plan, we've done a lot of testing for possible implementation approach. Based on our results there is no impactful way to implement z-addr SPV solution based on JSON-RPC communication with ZEC daemon only.

In order to deliver reliable/fast/scalable implementation of z-addr for the mobile application users, we have to develop a customized server-side solution (backend) that will provide necessary resources.

The general architecture will stay the same; the only difference is a new instance of the backend. The mobile application will be integrated with ZEC blockchain node using both: RPC and server-side using the specific/custom protocol. This solution will let us make the wallet app stable and reliable for the community users. As per we can see now, Sapling can partially solve the problem, making it easier to create z-transactions. That will significantly improve the user experience. So we’ll probably consider the possibility of waiting for Sapling release if it will help us provide a better solution.

arielgabizon commented 6 years ago

@AndrewGuarda what is the main problem with using the zcashd daemon? time? space?

AndrewGuarda commented 6 years ago

@arielgabizon the main problem we've discovered is in the restoring zk wallets (history mostly). It requires scanning the whole blockchain and parses it with the wallet viewing key. So we'll have the problems with all of you mentioned: time, space, performance, the battery in the terms of the mobile application. So the issue is not in the insufficient zcash daemon interfaces, it's mostly about the mobile device performance.

AndrewGuarda commented 6 years ago

Dear all, please find z-cash t-addr SPV library repository https://github.com/guardaco/zcash-SPV

AndrewGuarda commented 6 years ago

Dear Zcash foundation, community.

I want to thank everybody for the valuable feedback and comments on our z-addr issue. Finally, we've got the architecture solution that allows implementing z-addr using Wallet Service (WS) backend.

The workflow app-WS looks as follows:

  1. app gets the latest known block
  2. Private view key registration in WS
  3. app gets the wallet outputs from the blocks range
  4. Check the nullifier's availability
    This will let us do both: restore wallets and create new wallets using the WS.

The next z-addr issue is to sign the transaction on the device. We've done the performance tests for z-addr transaction signing operation (we've used data center hosted server):

We fully understand how important it is for Zcash Foundation to get z-addr implementation on the mobile and our team is ready to continue this work. But it looks we'll get the negative user experience in the current conditions for the temporary solution. However upcoming Overwinter and Sapling hard forks will partially solve the problem of energy consumption. So we decided to wait for the forks before launching z-addr wallet in order to provide a better user experience, increase the wallet adoption among community members and avoid negative feedback.

We need to research Overwinter/Sapling specs to estimate how the situation will be changed in Summer/Autumn. As usual, I'll appreciate your thoughts and comments.

@mineZcash @lindanlee @nathan-at-least @arielgabizon @amiller

flame05 commented 6 years ago

Hey @AndrewGuarda, waiting till Sapling release (sept 2018) will be the smart move, memory requirment and processor time will decrease dramatically for shielded txs!

Great job BTW, really slick developement: reactive and crystal clean!

sonyamann commented 6 years ago

Hi @AndrewGuarda! I'm pinging all of the 2017 grant recipients for updates on their projects. Can you either write a paragraph or two here, or alternately email me? sonya@z.cash.foundation

Thank you!

lindanlee commented 6 years ago

@AndrewGuarda has left Guarda. He contacted his collaborators with the news a while ago.

sonyamann commented 6 years ago

Ah, okay. Can someone else update, then?

flame05 commented 6 years ago

How professional. Leaving without even informing. Clap clap