15 Awesome Python And Data Science Projects For 2021 And Beyond | by Bharath K | Towards Data Science

Implementation of awesome and cool projects to revolutionize the modern generation is the best part of Python and Data Science.
My favorite part about the fields of Python programming and Data Science is the numerous amounts of wonderful projects you can build with them. You can construct groundbreaking, innovative, and revolutionary projects which can benefit the entire society as well as change the landscape of the entire world to reach great feats.
Tech giants and major companies are heavily investing their resources in Data Science due to the vast potential the innovations of this subject possess. With a wide array of spectacular projects that are built each day by creative data scientists and programmers, it would great to have a look at what we as individuals can achieve.
In this article, we will discuss fifteen awesome Python and Data Science projects that you can enjoy implementing. These projects are guaranteed to provide you with the best possible experience for understanding most of the essential Python and Data Science concepts in further detail. Along with the immense knowledge and experience you gain from these projects, you can also showcase them in your resumes for better job opportunities or just as a sign of self-pride!
The article is divided into three major sections targeted at audiences of all levels. The categories are beginner, intermediate, and advanced. In each of these categories, we have exactly five projects mentioned. This adds up to a total of fifteen fabulous projects that you can build from scratch. You can pick which category or which particular project you want to choose. However, it is highly recommended that you glance through all the project ideas provided in this article for more innovative ideas.
So, without further ado, let us start looking at each one of these project ideas, and analyze them accordingly.
To start things off with a simple project that I recently covered in one of my articles is the reminder application that will consistently notify you about the various tasks you have to complete throughout the day. The notifications will be reminded according to the time scheduler which you have programmed the script to perform.
The project makes use of only two modules for the completion of the task. It utilizes the time module, which comes pre-installed with Python, and the plyer library, which will be used for alerting us about the timely notifications for the completion of the particular task at hand.
The following project is extremely simple for a beginner-level introduction to understanding Python and the basic concepts related to the subject. Despite its simplicity, it can be very useful for improving your overall productivity. The link provided guides you through the entire process of building this project from scratch.
towardsdatascience.com
The first project is fairly simple, and the estimated time to complete this project should range anywhere from 30 minutes to 2 hours, depending on the programmer’s interest and skill. However, the difficulty range from the next projects mentioned will gradually increase.
An important aspect of python and machine learning is understanding the math behind these concepts and knowing how some of the code in machine learning libraries. To have a better grasp of these concepts, it is essential to practice the ideas implemented in scientific modules like numpy and scikit-learn by ourselves. One such programming application is performing the matrix multiplication operation without using any ML libraries.
To perform this task, the main requirement is knowledge of how matrices works. The complete explanation and guide can be obtained from my article below. However, if you are just interested in the basic gist of this coding problem and want to try to solve this on your own, then use the next reference paragraphs to help you get started.
towardsdatascience.com
My approach to this problem is going to be to take all the inputs from the user. These are the number of rows and columns of both the first and second matrix. Also, based on the number of rows and columns of each matrix, we will respectively fill the alternative positions accordingly.
The first step, before doing any matrix multiplication is to check if this operation between the two matrices is actually possible. This can be done by checking if the columns of the first matrix matches the shape of the rows in the second matrix. This can be formulated as:
→ no. of columns in matrix 1 = no. of rows in matrix 2
This should be a great starting point for you to get started. From here you can compute the problem statement with various ways by utilizing your own techniques.
The house price prediction is one of the best ways for a beginner to get started with various machine learning algorithms. The best part about trying out this project is that you can gain a superior understanding of the scikit-learn (also referred to as sklearn) library, which is an extremely significant module for Machine Learning tasks.
The scikit-learn module is one of the best tools for machine learning and predictive data analysis. It offers a wide range of pre-built algorithms such as logistic regression, support vector machines (SVM’s), classification algorithms like K-means clustering, and a ton more operations. This is the best way for beginners to get started with machine learning algorithms because of the simple and efficient tools that this module grants access to.
Using this module you can access The Boston Housing Dataset. The Boston Housing Dataset is a derived from information collected by the U.S. Census Service concerning housing in the area of Boston MA. The dataset is small in size with only 506 cases. The following describes the dataset columns:
CRIM — per capita crime rate by town
ZN — proportion of residential land zoned for lots over 25,000 sq.ft.
INDUS — proportion of non-retail business acres per town.
CHAS — Charles River dummy variable (1 if tract bounds river; 0 otherwise)
NOX — nitric oxides concentration (parts per 10 million)
RM — average number of rooms per dwelling
AGE — proportion of owner-occupied units built prior to 1940
DIS — weighted distances to five Boston employment centres
RAD — index of accessibility to radial highways
TAX — full-value property-tax rate per $10,000
PTRATIO — pupil-teacher ratio by town
B — 1000(Bk — 0.63)2 where Bk is the proportion of blacks by town
LSTAT — % lower status of the population
MEDV — Median value of owner-occupied homes in $1000's
In the next few blocks of code, we will discuss how we can utilize this module to access the dataset as well as some of the additional libraries required for analyzing and solving this simple machine learning task. It will be a quick guide on how you can get started and will cover the basic requirement. After understanding these concepts, you should be able to implement some machine learning algorithms on the following dataset.
The first step is to import all the essential requirements for solving this task. It is recommended that you use the following modules while trying to implement the various machine learning algorithms. The block of code is a simple representation of some of the code lines that might be required to solve the task. (It is for trying a decision tree or a random forest approach.)
After importing all the essential libraries required for performing this task, you can load the Boston dataset and proceed to assign separate variables for the data and the target variable. The price which is to be predicted is the target variable, while the other important features are the information of the dataset. This converts the problem into a machine learning prediction task. You can do this from the code provided below.
Finally, we can quickly visualize this data using the pandas data frame structure. This can be constructed from the simple code block as mentioned below.
The above image is a representation of the dataset. You can add the feature names for the respective columns if you like. However, this should be a good starting point for most beginners to get started. Kaggle and GitHub are your best friends for solving these machine learning tasks. Check out the Kaggle Website for further information from the link here.
Email spam, also referred to as junk email, is unsolicited messages sent in bulk by email (spamming). Email filtering is the processing of email to organize it according to specified criteria. The term can apply to the intervention of human intelligence, but most often refers to the automatic processing of incoming messages with anti-spam techniques — to outgoing emails as well as those being received.
Various Classification Algorithms can be used for completing the email spam detection task. The various machine learning algorithms like Naive Bayes, support vector machines, K-nearest neighbors, and random forests among many other algorithms can be used for filtering spam messages and classifying if the received email is a spam or not.
Advanced spam detection can be performed using techniques like neural networks or optical character recognition (OCR) which is also used by companies like Gmail for spam filtering.
Assume we have a dataset of 30,000 emails out of which some are classified as spam and some are classified as not spam. The machine learning model will be trained on the dataset. Once the training process is complete, we can test it with a mail that was not included in our training dataset. The machine learning model can make predictions on the following input and classify it correctly if the input e-mail is spam or not.
Various anti-spam techniques are used to prevent email spam (unsolicited bulk email). No technique is a complete solution to the spam problem, and each has trade-offs between incorrectly rejecting legitimate email (false positives) as opposed to not rejecting all spam (false negatives) — and the associated costs in time, effort, and cost of wrongfully obstructing good mail.
As an example, the Naive Bayes classifiers are a popular statistical technique of e-mail filtering. They typically use bag of words features to identify spam e-mail, an approach commonly used in text classification. Naive Bayes classifiers work by correlating the use of tokens (typically words, or sometimes other things), with spam and non-spam e-mails and then using Bayes’ theorem to calculate a probability that an email is or is not spam.
Naive Bayes spam filtering is a baseline technique for dealing with spam that can tailor itself to the email needs of individual users and give low false positive spam detection rates that are generally acceptable to users. It is one of the oldest ways of doing spam filtering, with roots in the 1990s.
A quick guide for the following can be obtained from the link here.
Sentiment analysis (also known as opinion mining or emotion AI) refers to the use of natural language processing, text analysis, computational linguistics, and biometrics to systematically identify, extract, quantify, and study affective states and subjective information.
Sentiment analysis is widely applied to voice of the customer materials such as reviews and survey responses, online and social media, and healthcare materials for applications that range from marketing to customer service to clinical medicine.
A basic task in sentiment analysis is classifying the polarity of a given text at the document, sentence, or feature/aspect level — whether the expressed opinion in a document, a sentence or an entity feature/aspect is positive, negative, or neutral. Advanced, “beyond polarity” sentiment classification looks, for instance, at emotional states such as “angry”, “sad”, and “happy”.
However, you can choose to negate the other reviews and only classify them as good or bad. For example, for a movie review, anything rated 1–2 stars is marked as negative, a rating of 4–5 is marked as positive, while a neutral rating of 3 can be ignored accordingly.
Solving the Sentiment Analysis problem is one of the best beginner-level projects for you to start with due to the wide range of options that you have available to solve the following task. You can choose any method that you prefer for solving this question.
Machine learning Algorithms like logistic and Naive Bayes can be easily used to solve such kinds of tasks. Many approaches can be used for obtaining a solution to this problem, including methods of deep learning. However, even the simplest methods can be used to solve this task, depending on how complicated you decide to make the problem.
My suggestion for detailed understanding of the concepts of natural language processing and sentiment analysis is the link here. You can audit the course if you like. I would also recommend checking out the article below for further information on this topic.
towardsdatascience.com
The outdated GIF you guys can see above is one of my first projects I ever did with the help of pygame about three years ago. If you want a more concise guide on how you can build this from scratch with python then do let me know. But the main idea here is to build a game with python from scratch on your own. Start off with something simple like a snake game, or tic-tac-toe, and proceed towards a more advanced one like flappy birds with reinforcement learning.
The idea behind accomplishing this task is more of personal opinion and preference. I believe that one of the best ways to get a good hold of any programming language is to start with a project that is fun and enjoyable. I am also a bit of a gaming nerd. To get started with gaming projects related to python, I would highly recommend the use of the Pygame library module for the execution of such programs.
With the pygame module, you can build some simple, fun games with python. However, don’t expect anything too fancy as it has its limitations. Regardless, it is a fantastic way to get started, and below is the starter code to dive in. Just install pygame with a simple pip command and then use the following import pygame command. The following message will greet you upon the successful importing of the module.
pygame 1.9.6Hello from the pygame community. https://www.pygame.org/contribute.html
The versions might differ depending on the time on installation, so don’t worry too much. Just use the updated versions always in any scenario. I will go over some basic commands you should know and how they work. Below is the complete code block for all the important aspects you need to know to get started with pygame.
#imports the pygame library moduleimport pygame# initilize the pygame modulepygame.init()# Setting your screen size with a tuple of the screen width and screen heightdisplay_screen = pygame.display.set_mode((800,600))  # Setting a random caption title for your pygame graphical window.pygame.display.set_caption("pygame test")# Update your screen when requiredpygame.display.update()# quit the pygame initialization and modulepygame.quit()# End the programquit()
I would highly recommend you check out some YouTube videos for better understanding and learning to build some games. The documentation for the pygame module, albeit a little lengthy, is probably one the best resources to learn more about this module.
Computer vision is an interdisciplinary scientific field that deals with how computers can gain high-level understanding from digital images or videos. From the perspective of engineering, it seeks to understand and automate tasks that the human visual system can do.
RGB are the 3 most significant layers of coloring for computer vision tasks. The composition of these three colors, namely red, green, and blue can be used to compose almost any other color. Mixing them in the right proportion allows us to frame any other desired color. This concept has existed since the cathode ray televisions a few decades ago.
Each of these colors has an 8 bit integer value. This means a matrix of these could range from 0 to 255. The reasoning for this is because 28 is 256 and 0–255 consist of 256 values. Each of these colors will have a value of this range and since we have a 3-Dimensional image, we can stack each of these upon each other.
OpenCV module is by far the best library for the execution of complex machine learning, deep learning, and computer vision tasks. It offers simplicity and high standards for the analysis and performance of the models being built. It is an open-source library and can be integrated with other python modules such as NumPy to accomplish complicated real-time applications. It is supported for a wide range of programming languages and runs remarkably on most platforms such as Windows, Linux, and MacOS.
Working and dealing with images is an essential aspect of computer vision projects for AI and Data Science. The reading, displaying, and writing of images is an essential part of computer vision as you have to consistently deal with images. The best part about opencv apart from the previously mentioned advantages is that it grants you access to a variety of image formats as well. So, we can work on all these image formats without facing any major issues.
The article link mentioned below is a concise guide to master the basics of computer vision from scratch. I have covered all the essential aspects for a beginner to get started and achieve an overall detailed understanding of the OpenCV module and how you can operate on a variety of images.
towardsdatascience.com
The next intermediate level we will be focusing on is one of the coolest aspects of having python programming knowledge. Complicated tasks such as text-to-speech conversion and optical character recognition of python can be completed just with the help of understanding the python library modules created for this purpose.
The text-to-speech (TTS) is the process of converting words into a vocal audio form. The program, tool, or software takes an input text from the user, and using methods of natural language processing, understands the linguistics of the language being used, and performs logical inference on the text. This processed text is passed into the next block, where digital signal processing is performed on the processed text. With the use of the many algorithms and transformations, this processed text is finally converted into a speech format. This entire process involves the synthesizing of speech.
Optical Character Recognition is the conversion of 2-Dimensional text data into a form of machine-encoded text by the use of an electronic or mechanical device. The 2-Dimensional text data can be obtained from various sources such as scanned documents like PDF files, images with text data in formats such as .png or .jpeg, signposts like traffic posts, or any other images with any form of textual data. There is a wide range of interesting applications for optical character recognition.
Below is the list of two articles that will be extremely useful to get you acquainted with the Google Text-To-Speech module for speech translation and the pytesseract module for optical character recognition. Refer to these below articles for a comprehensive guide for getting started with them and perform a project using them together.
towardsdatascience.com
towardsdatascience.com
Face recognition is the procedural recognition of a human face along with the authorized name of the user. Face detection is a simpler task and can be considered as a beginner level project. Face detection is one of the steps that is required for face recognition. Face detection is a method of distinguishing the face of a human from the other parts of the body and the background.
The haar cascade classifier can be used for the purpose of face detection and accurately detect multiple faces in the frame. The haar cascade classifier for frontal face is usually an XML file that can be used with the open-cv module for reading the faces and then detecting the faces. A machine learning model such as the histogram of oriented gradients (H.O.G) which can be used with labeled data along with support vector machines (SVM’s) to perform this task as well.
The best approach for face recognition is to make use of the DNN’s (deep neural networks). After the detection of faces, we can use the approach of deep learning to solve face recognition tasks. There is a huge variety of transfer learning models like VGG-16 architecture, RESNET-50 architecture, face net architecture, etc. which can simplify the procedure to construct a deep learning model and allow users to build high-quality face recognition systems.
You can also build a custom deep learning model for solving the face recognition task. The modern models built for face recognition are highly accurate and provide an accuracy of almost over 99% for labeled datasets. The applications for the face recognition models can be used in security systems, surveillance, attendance systems, and a lot more.
Below is an example of a face recognition model built by me using the methods of VGG-16 transfer learning for face recognition after the face detection is performed by the haar cascade classifier. Check it out to learn a more detailed explanation of how exactly you can build your very own face recognition model.
towardsdatascience.com
The link above is an example for a high accuracy face recognition system using deep learning with transfer learning methods to grant access to authorized users and deny permission to unaccredited personnel. Using methods of image data augmentation and transfer learning models, the face recognition model on the authorized user’s faces predicts with a high accuracy level.
A unique aspect of working on Data Science projects is the ability to create awesome predictive type models. The Google search bar, WhatsApp messages, etc., among many other applications, use the methodology of Next Word Prediction to predict the appropriate suggestion after each new word has been typed.
This is similar to Autocomplete, or word completion, which is a feature in which an application predicts the rest of a word a user is typing. In Android smartphones, this is called predictive text. In graphical user interfaces, users can typically press the tab key to accept a suggestion or the down arrow key to accept one of several.
This project idea is a fantastic choice for transitioning from intermediate-level projects to fairly advanced ones. This project idea uses major concepts of natural language processing and will require a decent amount of skill to solve. You can use a variety of machine learning algorithms and techniques to solve this task. However, I would recommend and encourage all of you to try out some innovative deep learning methods for solving this project while aiming to achieve top-notch results.
The next word prediction for a particular user’s texting or typing can be awesome. It would save a lot of time by understanding the user’s patterns of texting. This could be also used to create a bigger virtual assistant project to complete certain sentences. Overall, the predictive search system and next-word prediction is a very fun concept to implement. You can check out my article below, which covers the deep learning methodology to predict the next words.
towardsdatascience.com
The resource mention above uses LSTM based deep learning model which takes an input word or sentence and predicts the next appropriate word. This deep learning model uses the concept of long short-term memory with natural language processing for the pre-processing of the corpus and text data. Uses a custom sequential model for the prediction of the appropriate next word. It has a wide array of applications in social media for the next word prediction.
This computer vision project could easily be considered a fairly advanced one but there are so many free tools and resources that are available that you could complete this task without any complications. The object detection task is the method of drawing a bounding box around the recognized object and identifying the recognized object according to the determined labels and predict these with specific accuracies. the object tracking is slightly different in comparison to the object detection, as you not only detect the particular object but also follow the object with the bounding box around it.
Object detection is a computer vision technique that allows us to identify and locate objects in an image or video. With this kind of identification and localization, object detection can be used to count objects in a scene and determine and track their precise locations, all while accurately labeling them. An example of this can be either following a particular vehicle on a road path or tracking a ball in any sports game like golf, cricket, baseball, etc.
The various algorithms to perform these tasks are R-CNN’s (Region-based convolutional neural networks), SSD (single shot detector), and YOLO (you only look once) among many others. I am going to mention 2 of the best resources by two talented programmers.
One method is more so for embedded systems like the raspberry pi and the other one is for PC related real-time webcam object detection. These two below resources are some of the best ways to get started with object detection/object tracking and they have YouTube videos explaining them in detail as well. Please do check out these resources to gain a better understanding of object detection.
github.com
github.com
The demand for high-quality chatbots is increasing every day. The main reason why chatbots are so popular now is because they can provide automated responses about the website or a particular topic. They can answer frequently asked questions and help new users on the website by welcoming them and briefing them about the particular site.
A well-trained chatbot can even converse with the user similar to how a human assistant would. Chatbots are also able to engage in conversations and help the user perceive what the site is about while promoting the website or social media web page. They can also advertise and garner better interaction from the user. All these factors make chatbots extremely important for any small start-up or any big website as it saves a lot of human effort and resources.
Deep Learning algorithms with neural networks and natural language processing (NLP) are the most popular chatbot methods which are being used today. There are a lot of other machine learning algorithms also which can be used. In deep learning, more popularly LSTMs are used and the sequence to sequence models with attention is preferred. Below is an example of an innovative chatbot built by me from scratch.
towardsdatascience.com
The resource mentioned above is for an Innovative Chatbot with 1-Dimensional Convolutional Layers.
A 1-Dimensional text classification-based chatbot that replies with sarcastic responses to commonly asked questions. This chatbot model is an integral component of the virtual assistant project that will respond to the user with witty responses and keep the user engaged in funny conversations. The chatbot model is also perfect for casual talks and appealing to a foreign audience. It also has a high-quality prediction system.
Machine translation, sometimes referred to by the abbreviation MT, is a sub-field of computational linguistics that investigates the use of software to translate text or speech from one language to another.
On a basic level, MT performs mechanical substitution of words in one language for words in another, but that alone rarely produces a good translation because recognition of whole phrases and their closest counterparts in the target language is needed. Not all words in one language have equivalent words in another language, and many words have more than one meaning.
These types of problems can be solved with AI and Data Science technologies. These usually work on concepts such as natural language processing, machine learning, and deep learning. A sequence to sequence (Seq2seq) mechanism with attention can be used to achieve higher accuracy and lower losses for these predictions. Seq2seq is a family of machine learning approaches used for language processing for applications that include language translation.
Seq2seq turns one sequence into another sequence. It does so by use of a recurrent neural network (RNN) or more often LSTM or GRU to avoid the problem of vanishing gradient. The context for each item is the output from the previous step. The primary components are one encoder and one decoder network. The encoder turns each item into a corresponding hidden vector containing the item and its context. The decoder reverses the process, turning the vector into an output item, using the previous output as the input context.
Zero-shot and one-shot learning methods even exist for natural language processing. The same methods can be used for better training of the model to improve the overall performance and avoid repeated training procedures which can be a really big hindrance in some real-life applications and scenarios. Hence, one-shot learning is a great alternative for deployment and working in other embedded systems with lower training capacities.
Machine Translation is an awesome advanced level project to try out and have fun with. A great resource for accomplishing this task is the official website of TensorFlow that deals with Neural machine translation with attention. They work on a toy dataset and provide great insides on how to perform the following complex problem. You can check out the link from here.
This project uses computer vision and deep learning to detect the various faces and classify the emotions of that particular face. Not only do the models classify the emotions but also detects and classifies the different hand gestures of the recognized fingers accordingly.
After distinguishing the human emotions or gestures a vocal response is provided by the trained model with the accurate prediction of the human emotion or gesture respectively. The best part about this project is the wide range of data set choices you have available to you.
The project is a fairly advanced computer vision task, which will be awesome to fit on your resume of widely accomplished projects. Working on this fabulous project will also provide you with some must needed experience to complete complicated and complex problems related to deep learning and computer vision.
The below links are a reference to one of the deep learning projects done by me by using methodologies of computer vision, data augmentation, and libraries such as TensorFlow and Keras to build deep learning models. I would highly recommend viewers to check the below 2-part series for a complete breakdown, analysis, and understanding of how to compute the following advanced computer vision task. Also, make sure to refer to the Google text-to-speech link provided in the previous section to understand how the vocal text conversion of text to speech works.
towardsdatascience.com
towardsdatascience.com
The links provided above represent a computer vision and deep learning model to recognize human emotions and gestures. The model also provides a vocal response and classifies the respective emotion or gesture accordingly. Uses deep learning technology with a custom-built sequential model to achieve high accuracy on human emotions, and transfer learning based on VGG-16 architecture for gesture recognition.
GANs developed and originated in 2014 by Ian Goodfellow, and his colleagues have gained immense popularity recently. GANs are perceived to be the future of deep learning with their amazing ability to create visuals and images that have never even existed. Generative Adversarial Networks are the current peak of deep learning with an exceedingly improving curve.
GANs are an undeniable future trend that will revolutionize artificial intelligence forever. GANs is a slightly complicated topic, and I will be covering it extensively in the upcoming article’s part by part. However, for the purpose of this post, it is essential to note that two networks, a generator, and a discriminator go to war against each other and have a small dispute.
The generator tries to create realistic fake images to bypass the elemental checking of the discriminator, while the role of the discriminator is to catch the fake copies. This cat and mouse chases leads to the development of unique samples that have never existed, and it is realistic, far beyond human imagination.
I am not going to mention any specific project with GANs as there is a wide variety of unique and awesome applications as well as other innovative projects you can create with them. The popularity of GANs is on the rise, and it can create new artistic and realistic images out of absolutely nothing. GANs are being even explored to generate music from various sub-fields and Genres. Hence, they are not limited to images only.
A famous example of Generative Adversarial Networks (GANs) can be observed from the website called “thispersondoesexist.com.” Upon refreshing or re-visiting this site, you will encounter new faces of individuals who actually don’t exist. This project is constructed and imagined by a type of GANs (generative adversarial network) called the StyleGAN2 (Dec 2019) developed by Karras et al. and Nvidia.
The construction of a variety of new projects with Python and Data Science will enable you to understand and grasp the concepts you have studied much better. The passion to build new applications with Python and Data Science is an important quality for being successful in this field.
Theoretical understanding of the intuition behind machine learning concepts and math for the various topics of data science is crucial. To appreciate the true beauty of data science, you need to try out lots of projects. The wide array of tasks and the problems you can solve are absolutely fantastic, which leads to a sense of accomplishment when you find their respective solutions.
However, you also need to know how you can implement the following projects in a real-life practical scenario. Don’t be afraid to get your hands dirty with some code and implement these projects on your own. Experiment with different parameters and try to achieve better solutions by trying out numerous algorithms and methods.
In this article, we discussed 15 awesome Python and Data Science projects that you can experiment with and try out. These ideas would fit perfectly for anyone’s resume as it includes a wide array of unique and cool projects that you have built. It will help you to improve your overall profile as well as help you in clearing the initial selection process more effectively.
With the implementation of these projects, you will also gain more practical knowledge and a deep understanding of the concepts that you work on. If you have any queries related to the topics discussed in this article, then feel free to let me know in the comments section below, and I will try to get back to you with a response as soon as possible.
Check out some of my other articles that you might enjoy reading!
towardsdatascience.com
towardsdatascience.com
towardsdatascience.com
towardsdatascience.com
towardsdatascience.com
Thank you all for sticking on till the end. I hope you guys enjoyed reading this article. I wish you all have a wonderful day ahead!