profile-pic
Vetted Talent

Nikesh Nayak

Vetted Talent

Experienced mobile app developer with 6 years of overall experience in mobile app development,

including 4 years specifically focused on Flutter app development, I specialize in crafting sleek,

user-friendly mobile applications tailored to client needs. I have specialized in creating sleek and

user-friendly apps using Flutter, excelling in Dart programming and intuitive UI design.

With a collaborative approach, I always ensure my apps meet client requirements and exceed user

expectations. I stay updated with the latest trends and actively contribute to the Flutter community.

  • Role

    SR. FLUTTER DEVELOPER

  • Years of Experience

    7 years

Skillsets

  • MySQL
  • Firebase services - 7 Years
  • React.js
  • React Native
  • Node.js
  • Jira
  • Google maps apis
  • Github
  • Bitbucket
  • Firebase - 7 Years
  • Visual studio Code
  • Python
  • Provider
  • PHP
  • Native Android
  • Android Studio
  • MVVM
  • MVC
  • MVC
  • Mongo DB
  • Kotlin
  • Java
  • GetX
  • Flutter - 5 Years
  • DDD
  • Dart - 5 Years
  • C
  • C
  • BLoC

Vetted For

10Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior Flutter Developer (Remote)AI Screening
  • 63%
    icon-arrow-down
  • Skills assessed :Ci/Cd Pipelines, Node Js, Dart, Flutter, Flutter framework, flutter_bloc package, Restful APIs, Third-party Libraries, Django, Github
  • Score: 57/90

Professional Summary

7Years
  • Jul, 2024 - Mar, 2025 8 months

    SR. FLUTTER DEVELOPER

    One Game Inc.
  • Jan, 2022 - Apr, 20242 yr 3 months

    SR. FULL STACK FLUTTER DEVELOPER

    IGenerate Technology Private Limited
  • Apr, 2021 - Dec, 2021 8 months

    FULL STACK FLUTTER DEVELOPER

    Freelancer
  • Oct, 2020 - Mar, 2021 5 months

    SR. FULL STACK FLUTTER DEVELOPER

    Point of Sell Digitech Private Limited

Applications & Tools Known

  • icon-tool

    Android Studio

  • icon-tool

    Visual Studio Code

  • icon-tool

    XAMPP

  • icon-tool

    FileZilla

  • icon-tool

    Firebase

  • icon-tool

    Postman

  • icon-tool

    Slack

  • icon-tool

    Visual Studio Code

  • icon-tool

    GitHub

  • icon-tool

    Bitbucket

  • icon-tool

    Jira

  • icon-tool

    Google Maps

Work History

7Years

SR. FLUTTER DEVELOPER

One Game Inc.
Jul, 2024 - Mar, 2025 8 months
    My role was as a Mobile Team Lead & working on the product of the company named Torno Game. Designed and implemented intuitive user interfaces (UI) and interactive features. Worked on Unity Game Integration in the Flutter Apps. Integrated RESTful API and third-party APIs like Firebase, Branch.io, Google Admob SDK, and Meta Audience Network Ads SDK. For Version Control, GitHub and Bitbucket are used. Conducted thorough testing and debugging to ensure a stable and bug-free user experience.

SR. FULL STACK FLUTTER DEVELOPER

IGenerate Technology Private Limited
Jan, 2022 - Apr, 20242 yr 3 months
    My role was as a Team Lead & working on the client's projects according to the company's requirements and also developing their project whose concept is based on the Restaurant POS System. Designed and implemented intuitive user interfaces (UI) and interactive features. Integrated RESTful API and third-party APIs like Google Maps, Firebase, and many more. For Version Control, GitHub and Bitbucket are used. Conducted thorough testing and debugging to ensure a stable and bug-free user experience.

FULL STACK FLUTTER DEVELOPER

Freelancer
Apr, 2021 - Dec, 2021 8 months
    I was working as a freelancer and developed my freelancing client's projects. Designed and implemented intuitive user interfaces (UI) and interactive features. Integrated RESTful API and third-party APIs like Google Maps, Firebase, and many more. For Version Control, GitHub was used.

SR. FULL STACK FLUTTER DEVELOPER

Point of Sell Digitech Private Limited
Oct, 2020 - Mar, 2021 5 months
    My role was to work on the client's projects according to the company's requirements and also to develop an e-commerce multivendor platform for the company. Designed and implemented intuitive user interfaces (UI) and interactive features. Integrated RESTful API and third-party APIs like Google Maps, Firebase, and many more. For Version Control, GitHub was used.

Major Projects

5Projects

TORNO

Jul, 2024 - Mar, 2025 8 months
    Torno is one type of Gaming App like Winzo & MPL.

SAHL

IGenerate Technology Private Limited
Jan, 2022 - Apr, 20242 yr 3 months
    Sahl is one type of Restaurant POS system. It is the product of the company. My responsibility was to develop a mobile app for waiters, & guide other developers in the team The project architecture was MVC & GetX State management was used. I had to design and implement intuitive user interfaces (UI) and interactive features. Integrated RESTful API and third-party APIs like Firebase, Push Notifications, Mongoose Device Sync, etc.

REPAIR PRO

IGenerate Technology Private Limited
Apr, 2022 - Dec, 2022 8 months
    Repair Pro is one type of business of Home Repair Services in Dubai. My responsibility was to understand the client's requirements and develop a mobile app for their users & workers. The project architecture was MVC & GetX State management was used. I had to design and implement intuitive user interfaces (UI) and interactive features. I had to develop the REST APIs in Nodejs & integrate them into the app. Also Integrated third-party APIs like Twilio SMS Services, and Firebase Push Notifications.

FOOD HUNT

Freelancing
Nov, 2021 - Apr, 2022 5 months
    Food Hunt is a type of food delivery system.

MATAJI FASHION

Freelancing
Mar, 2021 - Oct, 2021 7 months
    Mataji Fashion is an e-commerce system designed for fabric sellers in Surat city of Gujarat in India.

Education

  • BACHELOR OF ENGINEERING IN COMPUTER

    Ipcowala Institute of Engineering & Technology, Dharmaj Dist. Anand (2018)
  • S.S.C - (GSEB)

    St. Anne's High School (2012)
  • H.S.C - (GSEB)

    Knowledge High School (2014)

Interests

  • Cricket
  • Singing
  • Dance
  • Listening Music
  • Reading
  • Learning
  • AI-interview Questions & Answers

    So, uh, let me tell you about myself. My name is Nikesh Nayak, and I am from Nadia, city of Gujarat State, which is situated in the country of India. Okay. I completed my bachelor of engineering in 2018 with 7.85 CGP. After that, uh, I started my career as an Android developer, native Android developer. Okay. And during that period of time, I was used to develop mobile apps using Android framework. Okay. Using the Android Studio and Java XML. Okay. Later on, uh, in my career, I decided to start it also as a back end part also. So I learned the BHP also, my skill part and all that. In 2020, due to the bad time of COVID okay, I decided to learn the Flutter framework. And at that time, uh, Flutter was very new to the market. Okay. Just a few years was happened. Okay. So I decided to grab that opportunity and learn that Flutter in that period of time. And later on after next organization, I started work as a full stack Flutter developer. Okay. In my career, I always, uh, believe that I have to keep myself in a learning phase. So later on in my career, uh, I faced some issues in my career, like, uh, company gets closed due to some COVID 19. Uh, due to COVID 19, they lost the business. In that period of time, I started freelancing okay. And in that period of time, I learned the Node JS okay. And other backend technologies, okay, and improve myself and improve my skill. I've also started developing the website using the product. Okay. So I in from the 2020 till yet, okay, I'm working as a full step for the demo. And, uh, uh, yes, uh, I'm very excited about, uh, this opportunity, current opportunity that I'm get that we'll be get. Okay? And, uh, I'm very confident about my knowledge. Okay? Because, uh, as my god says, uh, always keep our hearts clear. Okay? And, uh, always keep yourself transparent with each and everyone. So that's my from my side. Okay.

    Okay. That's the main point. That, uh, if there is gonna need need to request, okay, which is the last last period. Okay. I always, uh, make that payloads to be, uh, you can say that it should be get map, uh, stored in the map object. Okay? So we can store the multiple types of data in a single, uh, object. Okay? We can pass directly to the one function to one function, another function, easy. Like, uh, we can set the data using the map. Okay? And, uh, always, I think, uh, most of the HTTP request are based on the JSON parcel. Oh, sorry. Based on the rest tool APIs. Okay. So they accept the JSON response and gives us a in in the back as a response as a JSON only. So I use the map object, and I convert to the JSON and pass through the, uh, pass through the URL request. Okay. So it can easily get passed between and, yes, uh, we can handle it very easily because, uh, dealing with the last payload that you told, it can be only achieved by using the map, uh, which we have inside the folder. Okay. Because, uh, if I will take the multiple variables and pass into the parent, I have to set it by manually by each and every parent by myself, and which will be, I think, uh, very time consuming, and it will be very headache for a developer. Okay? So I can optimize the Flutter web request by using the map of map data type. Okay. Like, uh, we are always using it for a key value pair. Okay. So that's it for answer for my this question.

    Yes. Uh, Flutter is great in the architecture design. Okay. Like, we know about the clean architecture. It simply follows the particular feature. Like, uh, if we are targeting the authentication feature, like, it helps us to, uh, divide our app based on the feature. Okay? And we can also use that feature later on with another project without, uh, without any, uh, extra efforts. Okay? So clean architecture basically is the one of the finest things Flutter has. Okay? Because, uh, uh, first of all, uh, if we are defining a login sign up or everything, uh, we can decide that it's a one type of authentication feature. Okay? So we can create one feature. Okay? And, uh, it simply divides us the domain layer and data layer and presentation layer differently. Okay? So we can, uh, connect with the local or, uh, remote service easily. Okay? Uh, we can create our abstract classes. Okay? And, uh, yes, we can in that feature, we can also use the block architecture, which is way better than other architecture for the clean architecture. Okay? So my strategy is to implement that I will use the block architecture. Okay. And, uh, also, I will use the tools which, uh, rebuild my model like a not rebuild. It will build my model with the help of some builder runner or adjacent annotations. All are the generators which are available on the prospect, uh, of that day booking. And over there, uh, they have that, uh, already build up generators that can generate from JSON and 2 JSON for myself, uh, on behalf of me. Okay. So I can simply use that I can simply define the fields and, uh, declare the annotations and simply reuse that. Okay. And block also helps me to define the states properly, and I can handle it with the real UI. And, yes, there's a win the benefit of the a clean architecture that we can keep the separate the models. And each model, uh, can be declared inside the feature log. Like, uh, this is the authentication feature. So I can use the authentication model inside only the that feature only. Okay. And it separates the one feature from the another feature. Like, we can create a chat feature folder. Okay. So whole chat gets included in that particular. It's a conversation list or a message, uh, detail list. Okay? Everything which, uh, we require for a check. We can keep all that thing in a one folder, and that's the main thing that we can, uh, use it later on in the another projects also. And I think code availability gets, uh, very easy, and it's also generally get managed easily by other developers also. So they can just, uh, like, they can refer the code very easily, and they can understand that what, uh, the app is built. Okay. How it was developed. It's mixed very easy. So that's my strategy from my side.

    What processes will you follow to ensure robust error handling when making API calls in Flutter? For the robust error, I think, uh, I usually focus on the exception, uh, to declare user defined exception handling. Okay? Like, uh, I can tell you that, uh, if I have defined some, like, uh, errors and anything else, like, validation error or something regarding the input is not properly it's it's invalid input. Okay? Or a input which are required and I haven't provided. That error, uh, which are defined on the back end side. Okay. In the, for example, in the move, they have defined it. I have to scroll through this status code and this particular header for that specific. Okay. So for that, uh, I will what I will do that I will handle the status code and errors, and I will create one common class that handles this all these error based on the status code. Like, if 4 11 for example, I am defining that if status code is 411. That it means it is one type of validation error term. As for that, I have configured that exception class, which I have created in the auto. And I will use that I will handle that, uh, exception case inside the, uh, try case whenever we make a network API call. Okay. And, uh, also, I will handle the socket exemption, which are the normals, like, for the Internet connection is available or not. Or, uh, we also have a unexpected error also. So for that, uh, we are using the exception class. Okay? Because if some error which is not defined, okay, it should be get caught. So that should be done with the help of the exception class. So to handle the robust error, uh, I will I I will assume using this, uh, scenario. Okay?

    Yes. Definitely. Uh, dependency injection is very required in the current every, uh, large scale application on there. Okay. Because what we'd want, uh, what is the disadvantage of the depend, uh, if we don't use the dependency injection? Okay. So the thing is that, uh, we are initializing each and everything whenever we are visiting the screen or everything, wherever we have declared that thing. It should be gets recreated and get deleted. Okay. We need that that whenever I have gets opened, everything which should, uh, should be get created at once, and it should and that same object gets, uh, should be used in whole the app. So for that, depending injection, we, uh, we are using the, uh, get it. Okay. There is a one package net. Get it. So using that, we can achieve this. For my previous project, I have used it. Okay. So for the block, uh, block provider okay. Whenever, uh, we have to use the block class. Okay. The block which we have declared over there. We have to use it. We are calling, like, block provider of context. So that block should be available on for the whole app. Okay. So for that, uh, that block should only be get created once. Okay. So we done that. Okay. In the get it part. Okay. It should be get initialized when the main function gets called. Okay. And, also, it's a repository, uh, it's type of services, everything. Remote services, we have created, like, all three more services or chat remote services. So we can directly call that, and, uh, it's a very, uh, like, transparent part. Like, uh, we have to simply pass that object of getting from 1 class to another to initialize each object because it stores all the all the, uh, objects which are, uh, getting created in the app. Reference in a one single object of the Getty. And it tells us I have all the references of the all objects. So I will share it to each and everyone, and it simply detect that this reference of the object is available or not, uh, or if we forward to initialize that object in that dependency injection file, okay, wherever we are initializing everything at the start of the app, uh, we will get the error. Okay. Because we haven't passed that. Okay. So it simply, uh, it simply makes the our work easy. Okay. In short. Okay. Because, uh, that our app lagging and, uh, any break, uh, whenever it is getting break or we are fired. Uh, we are having any problem of the object is not available. This pro or block is not available or at this block, uh, this block context is, uh, we are not having any access. Whatever error we are getting regarding that, we can easily achieve using this dependency injection. And it's, uh, makes our app very smooth. Okay. It's only initialized everything at the start of the app. That's the main power of the dependent injection, and I can achieve using the get it package. Okay.

    How will you effect our Flutter application to improve performance and maintainability using the Flutter clock? Okay. That's the main thing. Right now, uh, I I faced this issue that there was one project where you created in the provider. Okay. And, uh, the client said to me that, uh, I need to refactor this whole project with the block. Okay. So first of all, in that case, I have to look into it that that, uh, wherever this API calling was happened. Okay. That's the main thing because block is basically separates the business logic from the UI part. Okay. So what I have to do that I have to decide that how many APIs and how many features are there in my app. Okay. So based on that, uh, based on the APIs, I can create the block like a login block. Okay. Like, we can say that, like, a auth block. Okay. In that, uh, we can manage the authentication. Uh, like, another is a get product list. Okay. We have created one API. So I can create 1, uh, get product list API, uh, block. Okay. This one that I can get the product list, and I can manage the state of the screen that whenever product list is fetching from the server. Uh, we have to show the different type of data, like loading screen or a list of products we have to show when the products get back. We have to maintain the state loading state success that fills everything. So we have to create the block on the base of the APIs we have we have right now and separate the business logic, which we have integrating that particular screen that we have to target from the start of the first of all, we have to target the login screen and then sign up. And whatever the screen, uh, which are coming, uh, in the path we are, uh, getting my which start the migrating. Okay. To uh, to achieve the performance, uh, like, uh, inventability, like, you are telling. And blocks itself, uh, maintain the code very well. Okay? Because, uh, one knows the block, knows that maintainability is the main thing. And it's also improve the performance. Okay? Because the block has that power. Then the it's only will update that particular part over, uh, whichever side you are consuming or, uh, like, you are listening that part of the UI. You have configured block of that part. That part only will get refreshed, And that's the main thing, uh, main thing I like about the block. Okay. Uh, inside in in spite of, uh, other state management like that, refresh all this thing, like the get x and provider and everything. So block is the powerful in that case. Okay. So do that, uh, we have the block consumer and block listener and everything. Okay. Block consumer has the listener and builder and builder both. So we can use that. And using that, we can refresh the screen. Okay. So, uh, that's the main part. I I told you that we can create the API, uh, calling with the block, convert, uh, create the block on the basis of the API and calling that particular screen. And 1 by 1, we can start the migration 1 by 1 screen. Okay. That can be achieved like that. I had done that thing like that. That's fine. And if there is another approach, it's acceptable. Okay. But, uh, I have then done that. What? Like that. Thank you.

    Inspect the following code for testing of Flutter media using the Flutter bot. Okay. What debug strategy will you suggest to ensure that load data event result in the correct state change? Okay. There is a load data update state. We just tester instead of sync. Final block equals to my data block, block dot add load data. K. Calling the event. Tester.com and silent. Expect later, block, and it's in order. Easy. Easy. Easy. Okay. Uh, I haven't worked on it, so I can't answer this question because, uh, I haven't tried this type of test case for this block. Okay? But, uh, I can try myself that inspired the following proof of testing the using the. What debug strategy will you suggest to ensure that the data? I think, uh, I can ensure it by but, um, um, I have to write the it test case for it. Okay. So that's the main thing, uh, even that lock part in there. This thing side. Okay. Not an issue. Uh, but thank you there for this question. I can work on it later. Thank you very much. Uh, let's move on to the next question.

    How do you go about documenting API interaction with the for future reference and maintenance? Yeah. That's the main important thing, uh, that, uh, further developers will do. And the the document comments will be done on the each and every widget, okay, uh, on the particular function. Okay. Like, what the use of it. They have to mention the functional, uh, like, if the function is, uh, regarding some calculation, okay, something. They have written that part in the Flutter app. So they have to mention that right down over there that, uh, this part is, uh, done for this. Okay? Like, uh, whatever use of it. Okay? For example, if my function is doing a procedure of the text, okay, using some API on for Firebase and so I have to mention that this function gets called. Okay? And it will do the OCR of the image, and we need to use the text. Then I have to, uh, describe that, and I have to write the name of the logic and the description. And apart from that, uh, also, we have to mention that which VJET is for the which use. So we can, uh, so someone can easily refer them. And, uh, yes, uh, documenting API is the is the main factor. Okay? Because we have to each and every parameter should be documented. Okay? Because, uh, someone will don't know that why this person has defined this parameter. So I have to mention that this email parameter is used to pass the email in string. This password is this. Okay? Whatever the purpose of that parameter is. Like, if it's optional parameter, do you have to mention that this is the optional, like, whatever you use the, like, colon optional, you written over there in a italic, uh, like, fashion. Okay. Whatever. So it will simply, uh, will be the understandability. Whenever they revisit that function, they can simply view that. Yeah. This function is of the issues because we have to write that this function is for the issues and this parameter as for this and what parameter will accept it. Okay. Everything you have to mention. So documenting the API is the main factor right now for the Flutter developers because most of the Flutter developers is not focusing on them because they are focused on the development. But, yeah, you get the time. If you have any way you're gonna be optimizing the code, you have to mention it.

    What are the some approaches you use to minimize the app size and input the launch time of the of the Flutter application? Yeah. That's the main factor. Today, uh, for this, I have learned that, uh, for the optimizing part. I think, uh, this thing, uh, usually faced by the Flutter developers that, uh, how to decrease the app size. Okay? So to decrease the app size, uh, Flutter right now, it's supporting the tree shaking icons, uh, more tree shaking. I think I think, uh, that's the parameter they are providing. So to achieve that, uh, you can minimize the app size by using no no tree shaking icon. Okay? And, uh, also, you can, uh, use some, uh, I think use some configuration in the gradle part. Okay. To be, uh, minimizing the app size. Okay. Because they have that, uh, some, I think, uh, some parameters, okay, in the grader file. And whenever you configure it, like, shrink, uh, I think, uh, shrink the size or minifying enable type of parameter is minifying enable, I think. That type of parameter is in the private integrator, which helps us to decrease the app size. And, uh, uh, also, for the launch time, uh, what you can do that, uh, you can simply focus on the that white screen is gaming coming, uh, first at the app start. So you can change that splash to your app app icon. Okay. So it will look like that your app is already get loaded. Okay. No one will notice about it that, uh, app gets too much time to load it. Okay. But you can achieve this, uh, using the splash screen. Okay. You can place the item. Like, uh, I think there is a package available pop dot dev. Then name is, I think, Flutter Flash, I think. But, uh, I used the last, uh, so much so many times. Okay. But, uh, get back and helps us to define one logo, uh, where you find that, uh, wide screen. Okay. You can place your logo. And after a few second, I think, uh, now nowadays, Flutter, Ringberg is very fast. Okay. So they have improved that, uh, app start time. Okay. So when app gets loaded very easily.

    What are your approaches for integrating performance optimization techniques in further application? Okay. For that, uh, I use the Flutter. I always run the Flutter in the profile before going for the release. Okay? So to check that the app is, uh, behaving, uh, like, we have to check the behavior, like, how will it be behaving the release mode. So for that, uh, I have used the Flutter run dash dev profile command. Okay? Who's, uh, check the profiling. And also, we have that inspector and product performance tool, okay, which are provided by the. So we can check that network calls. Uh, we can decrease the network calls. Okay? Because the main thing of each developer faces that it repeatedly call them network calls, okay, Because whenever you are calling to any network call, it will take some time to load the data. Wherever, uh, you are listing your data, okay, you should focus on the pagination part also because if you're not paging it in your list, you will face the performance issue. Always try to, uh, try to be, uh, not dependent on the too much network calls. Okay. Try to store that data, uh, if possible. Okay. Try to store that data in the local part. Okay. And, also, sometimes, uh, if I think, uh, as part of my concern, sometimes a developer faces the issue because of the back end part also. If your back end provider has given you the API and which returning returning with the data, uh, more than, uh, 5 second. Okay. Response is taking more than a risk, uh, 5 second response time. Okay. Then that API is not developed very good because if it is getting 5 second, then you will definitely get the time, uh, more more time to load the data. Okay. So that is not the optimistic way. So back end API should be also get optimal. Okay. And try to store the data in the local, okay, If possible. Try to fetch the data from the local and then do the background API call. Okay? And make sure that your API don't call redundantly. Okay. Make sure. Because, uh, if that part is done, then you definitely app is going to lag. And also, you have to focus on the animation part if you are doing that because mostly, animation parts lags the app. So when you when you have to animate the app, you have to focus on that. Okay. So that's why, uh, we use the Flutter performance tool in which we can see that wherever the network calls was very high, where was that memory usage was very high because we we have to make sure that when you are cleaning any ticker or any controller, you have to dispose it whenever the widget is getting disposed. Okay? Whenever any control is getting disposed. So at that time, your whatever you are consuming okay. Like, we are animating something. We are able to close it. If the memory gets leaked, your performance will be get down. So that, you should not be happy. So I think, uh, for that approach, you should definitely use the Flutter performance tool. If then it says, if any there is any third party tool, I haven't used it, but I know there are some tools, third party available. But mostly, I test the app manually and, uh, also focus on the Flutter the that tools. Okay? Thank you very much.

    Uh, open source project, uh, I think uh, I haven't let me think about it because open source code, Flutter code that we admire and what lessons learned from it and tech you apply in your work. Recently, I, uh, in the last month, I got the opportunity to work for a company, uh, for the for 1 week. Okay. They that was a open source project. Okay. They were working some on library of one type of messenger. Okay. And in that part, uh, I learned that they have, uh, integrated CCI pipeline very efficiently. They were using the e two e, uh, I think, uh, e two h or e two e testing and doing user testing. And, uh, they have written proper each and every test case for the camera features. Okay. They have used the clean architecture. Okay. And, uh, follows the the rules of the data very efficiently. So I learned that we have to use data very efficiently because the milestone they have defined and the the work was very professional. So I learned from that sort of project that, uh, I have to set up my series a pipeline for my project. Okay? So so that, uh, the delivery of the join get very easy. Right now I do, but, uh, not very efficiently. I'm because, uh, we are a learn always a learn. Okay. So we are learning day by day everything by working some another projects. Okay. So from that, I learned that that should be used, like, it, uh, it to be testing. Okay. It is one type of cracking testing we were using. So I like that. So that makes your app bug free. Okay. And, also, you get a headache off of the testing. Okay. Because it simply automates and gives you an offer. Also, they were using the GitHub pull request and issues. Everything, uh, they were using very professionally, so I like that. And I learned from that, uh, that I'm following that pattern. I started following, and, uh, it is very useful. Okay. I'm learning it right now. So that's the thing I learned from it. From the it was a one time of open open source project. Okay. That's right. Just tell you from my side, I like the intent, and, uh, it was very nice. Thank you very much.