AI marketing and customer service automation for email marketing, SMS, and WhatsApp to grow faster. Go beyond the basics with Klaviyo’s AI-first B2C CRM. Klaviyo syncs Shopify data in milliseconds so every message and insight reflects what’s happening in your store right now. Unify data from 350+ integrations and boost marketing performance with campaigns, smart segmentation, and automated workflows from Klaviyo’s AI Agents. Over 117k brands use Klaviyo and Shopify to grow faster with personalized emails, SMS, WhatsApp messages, and AI customer service tools that turn browsers into buyers. Go beyond the basics with Klaviyo’s AI-first B2C CRM. Klaviyo syncs Shopify data in milliseconds so every message and insight reflects what’s happening in your store right now. Unify data from 350+ integrations and boost marketing performance with campaigns, smart segmentation, and automated workflows from Klaviyo’s AI Agents. Over 117k brands use Klaviyo and Shopify to grow faster with personalized emails, SMS, WhatsApp messages, and AI customer service tools that turn browsers into buyers. more Unify and activate real-time data from Shopify and 350+ apps across the journey Use Composer to read your site and build launch-ready on-brand campaigns Create AI-powered segments and flow triggers using historical and real-time data Drive conversions with personalized email, SMS, WhatsApp, mobile push & pop-ups Turn service moments into shopping moments with Customer Hub and Customer Agent
Browse All Shopify Apps
Discover the best Shopify apps to grow your business. Compare features, pricing, and reviews to find the perfect tools for your store.
Top Categories:
Go beyond variant limits with custom product options Let shoppers customize products directly on your product pages with custom text fields and flexible options. Go beyond Shopify's variant limits and offer the options your products actually need. Add pricing for upgrades and bundle add-ons, and create flexible product configurations. Whether you're offering engraving, monograms, add-ons, bundles, or more complex product configurations, Infinite Options helps you collect exactly what you need. Let shoppers customize products directly on your product pages with custom text fields and flexible options. Go beyond Shopify's variant limits and offer the options your products actually need. Add pricing for upgrades and bundle add-ons, and create flexible product configurations. Whether you're offering engraving, monograms, add-ons, bundles, or more complex product configurations, Infinite Options helps you collect exactly what you need. more Add text boxes, dropdowns, checkboxes, swatches, and more Show or hide options based on selections with conditional logic Add pricing for upgrades, bundles, and add-ons Customer selections are included with each order in your Shopify admin Merchants love the fast, reliable support from our US-based team
Smart Checkout solution to reduce RTO, increase prepaid orders and manage COD effectively. Kwik COD & Checkout is a solution designed to streamline COD management and improve conversions effectively. Verifying customer intent, COD blocking, COD fees, and Partial COD options give you control over cash on delivery orders. Pre-filled addresses reduce cart abandonment, and offering prepaid options with multiple discounts encourages customers to opt for prepaid payments. This combination boosts your prepaid order share while improving both conversion rates and AOV - with 24x7 support Kwik COD & Checkout is a solution designed to streamline COD management and improve conversions effectively. Verifying customer intent, COD blocking, COD fees, and Partial COD options give you control over cash on delivery orders. Pre-filled addresses reduce cart abandonment, and offering prepaid options with multiple discounts encourages customers to opt for prepaid payments. This combination boosts your prepaid order share while improving both conversion rates and AOV - with 24x7 support more Accelerate checkout via smart login, pre-filled address & customizable checkout. Reduce RTO by intelligently blocking COD with 70+personalized interventions. Grow prepaid orders with advanced discounts, bundles & partial COD payments. Customize checkout with theme color, logo, and text color to match your store. Launch with 24/7 merchant chat support, leverage 35+ plug & play integrations
Print, send email & export PDF invoices, quotes, packing slips for orders & draft orders Create, customize, and automatically send professional invoices, quotes & packing slips to match your brand. Invoice Falcon lets you quickly generate and deliver invoices, receipts, and quotes with your logo, colors, and custom layouts. Easily tailor templates using our click-and-preview visual editor, with HTML/Liquid code or get help from 24/7 support. Perfect for stores of any size with round-the-clock support & weekly app updates. Create, customize, and automatically send professional invoices, quotes & packing slips to match your brand. Invoice Falcon lets you quickly generate and deliver invoices, receipts, and quotes with your logo, colors, and custom layouts. Easily tailor templates using our click-and-preview visual editor, with HTML/Liquid code or get help from 24/7 support. Perfect for stores of any size with round-the-clock support & weekly app updates. more Automatically send PDF invoices, receipts, and quotes to customers Fully customizable templates for invoices, quotes packing slips and more Filter, export, or bulk print documents directly from Shopify admin & POS Reliable performance with simple pricing, powerful features & 24/7 support Integrates with Shopify notifications like Order Confirmation emails
A/B test prices, discounts, content, shipping, checkout, post-purchase, and more with AI. AB test prices, content, shipping, discounts, checkout, and post-purchase offers to grow profit. Find the right price for every product, roll out winning variants across segments, and track results using your own COGS and metrics. Whether you're testing content updates, new discount strategies, or post-purchase offers, we help Shopify brands run experiments that drive real business impact. AB test prices, content, shipping, discounts, checkout, and post-purchase offers to grow profit. Find the right price for every product, roll out winning variants across segments, and track results using your own COGS and metrics. Whether you're testing content updates, new discount strategies, or post-purchase offers, we help Shopify brands run experiments that drive real business impact. more A/B test prices, content, shipping, checkout & post-purchase to grow profit Use AI to discover ideas, build tests, and analyze results in Claude & Slack Measure revenue, profit, and COGS side by side on every experiment Personalize by source, device, Klaviyo segment, or customer behavior Launch your first experience in minutes — no code required
Show product recommendations and cross-sell offers on key pages to increase average order value. Product Related | Also Bought | FBT allows you to show related products that customers may purchase along with the selected product. This helps increase sales and push deals for a better shopping experience. Offer bundle-style cross-sells to push higher-value carts or show “Complete the look” or “You may also like” sets to increase AOV. No coding needed—set up widgets in a few steps and start driving more revenue from each order by using your ultimate sales frequently bought together app. Product Related | Also Bought | FBT allows you to show related products that customers may purchase along with the selected product. This helps increase sales and push deals for a better shopping experience. Offer bundle-style cross-sells to push higher-value carts or show “Complete the look” or “You may also like” sets to increase AOV. No coding needed—set up widgets in a few steps and start driving more revenue from each order by using your ultimate sales frequently bought together app. more Frequently Bought Together widget display on the related product pages. Customize FBT widget design, text, and layout to match your brand. Recommended and Manual Related Products - Also Bought for upsell&cross-sell. Line, grid, Amazon styles for frequently bought together products. Also bought – related products pro to promote bestsellers or seasonal items.
Display "Stock Counter" widget on the products page to give the product a greater sense of urgency. By showcasing real-time inventory counts on the product page, you can enhance the visibility of your products in the online store and create a sense of urgency, enticing customers to seize the opportunity and make a purchase without delay. Therefore, utilising our "Stock Counter" app you can elevate your sales potential to new heights while also building credibility and trust with your customers. By showcasing real-time inventory counts on the product page, you can enhance the visibility of your products in the online store and create a sense of urgency, enticing customers to seize the opportunity and make a purchase without delay. Therefore, utilising our "Stock Counter" app you can elevate your sales potential to new heights while also building credibility and trust with your customers. more Display the stock counter based on the quantity of the products or its variants. Easily configure the rule for displaying the stock counter widget. Stock count widget displays based on Max and Min inventory quantity range. Easily enable or disable the stock counter at any time with convenience. Works on store 2.0 only
Boost AOV with an announcement bar for free delivery with animated shipping bar and goal messages. Motivate shoppers and boost sales with a customizable free shiping bar. Display real-time cart goal progress, create urgency with countdown timers, or spotlight limited-time offers. Choose from top bar, bottom bar, or embed on product pages. Tailor the free shipping cart bar to match your brand’s style. Set up in 2 minutes ultimate free shipping bar - without coding. Whether it’s a free shipping progress bar, flash sale, or product launch timer - capture attention and drive more conversions. Motivate shoppers and boost sales with a customizable free shiping bar. Display real-time cart goal progress, create urgency with countdown timers, or spotlight limited-time offers. Choose from top bar, bottom bar, or embed on product pages. Tailor the free shipping cart bar to match your brand’s style. Set up in 2 minutes ultimate free shipping bar - without coding. Whether it’s a free shipping progress bar, flash sale, or product launch timer - capture attention and drive more conversions. more Use as announcement bar, promo bar, free delivery bar or free shipping widget. Utilize a countdown bar and sales timer for special events to boost sales. Display shipping goal as a header bar, bottom bar or embed on product pages. Free shipping progress bar for real-time goal tracking. Fully responsive on desktop, tablet, and mobile devices.
AI that monitors, files, and optimizes sales tax for your business globally. Kintsugi uses AI to handle sales tax end-to-end, including automatic filing, registration, and physical mail handling. Our app connects to your store in minutes, tracks nexus in US and global jurisdictions, applies rooftop-accurate rates, and auto-files returns on schedule. Real-time dashboards expose liability down to each transaction, slashing audit risk and manual busywork. Just stress-free compliance as you scale your business. Kintsugi uses AI to handle sales tax end-to-end, including automatic filing, registration, and physical mail handling. Our app connects to your store in minutes, tracks nexus in US and global jurisdictions, applies rooftop-accurate rates, and auto-files returns on schedule. Real-time dashboards expose liability down to each transaction, slashing audit risk and manual busywork. Just stress-free compliance as you scale your business. more Auto-file taxes with live liability & jurisdiction-level breakdowns. One-click connects sync Shopify & ERP data in real time; monitor nexus. Upload any CSV; AI cleans, maps, and imports transactions instantly. AI auto-classifies items & addresses for perfect tax every time. Seamless EU VAT, GST/HST/QST compliance and multi-currency reporting.
Instant Checkout adds Buy Now button on PDP. Fast Checkout, Boost Sales with bypass Cart page. The app will add an Animated "Buy Now" button on the product page, the "Buy Now" button bypass the cart and sends users direct to the Checkout page. We totally focus on providing users an interactive guide so that they can move towards the Buy now button and can be focused on purchasing the product. This saves an extra step in the buying process, gives your visitors a better, easier mobile web experience, and increases your conversions as well. Contact us for any help needed with the app. The app will add an Animated "Buy Now" button on the product page, the "Buy Now" button bypass the cart and sends users direct to the Checkout page. We totally focus on providing users an interactive guide so that they can move towards the Buy now button and can be focused on purchasing the product. This saves an extra step in the buying process, gives your visitors a better, easier mobile web experience, and increases your conversions as well. Contact us for any help needed with the app. more One Click Install - No coding skills required. Just enable the app and use it. Add animated "Buy Now" button on product, collection & home page products. Edit the look and feel of your Buy Now button to match your store's brand. Sticky Buy Now button | Skip to checkout | Button Analytics | Halloween Compatible with ReCharge gateway Subscriptions.
Create beautiful image sliders, banner sliders, logo carousels, and lookbook without coding Image Slider Pro helps you create banner sliders, logo carousels, and lookbook-style sliders in just a few steps. Upload multiple images, control slider speed, add captions, and link each image to products, collections, pages, or external URLs. The app is mobile responsive and designed to help merchants display visual content in a clean, professional way. The Shopify App Store listing highlights features including bulk image upload, custom styles, captions, hover effects & scheduling. Image Slider Pro helps you create banner sliders, logo carousels, and lookbook-style sliders in just a few steps. Upload multiple images, control slider speed, add captions, and link each image to products, collections, pages, or external URLs. The app is mobile responsive and designed to help merchants display visual content in a clean, professional way. The Shopify App Store listing highlights features including bulk image upload, custom styles, captions, hover effects & scheduling. more Customize speed and add text and links to images from the backend effectively Redirect customers to products or external links when they click the images Install logo slider anywhere on your store home page or products/collection page
Boost sales by identifying new visitors with phone first SSO login and interactive pop ups Make log in effortless with phone first, SSO powered access. Identify users as they land on your store, ensuring a seamless and secure shopping experience. Engage visitors using popups with discounts like “Spin the Wheel” to capture attention and incentivise actions. Use interactive pop ups to collect customer data at every touchpoint, from browsing to checkout. It is automatically added to Shopify. Retain exit intent and convert leads. All with 24x7 support. Make log in effortless with phone first, SSO powered access. Identify users as they land on your store, ensuring a seamless and secure shopping experience. Engage visitors using popups with discounts like “Spin the Wheel” to capture attention and incentivise actions. Use interactive pop ups to collect customer data at every touchpoint, from browsing to checkout. It is automatically added to Shopify. Retain exit intent and convert leads. All with 24x7 support. more Turn anonymous shoppers into identifiable, high-intent leads Customers can log in via popups & stay signed in for the entire shopping journey Use phone numbers for quick, secure logins via OTP using popups Create fun, engaging pop ups like “Spin the Wheel” to capture customer attention Re-target visitors via Kwik Engage to drive additional conversions
Enable InPost parcel locker or pickup point selection in checkout with one click Built for Shopify, our app lets customers choose InPost Lockers (Paczkomaty InPost) and InPost Shops (PaczkoPunkty) directly at checkout. No theme modifications or coding knowledge required. Setup takes just a few minutes with no developer help. Runs independently of InPost servers, staying stable even during their outages. Integrates seamlessly with BaseLinker, Apilo, and Furgonetka - the selected pickup point is automatically recognized. Carrier Calculated Shipping is required for the app to work (unavailable on the Basic Shopify plan) - detailed instructions appear after installation, before payment. Supported countries: Austria, Belgium, France, Hungary, Italy, Luxembourg, Netherlands, Poland, Portugal, Spain, United Kingdom. Built for Shopify, our app lets customers choose InPost Lockers (Paczkomaty InPost) and InPost Shops (PaczkoPunkty) directly at checkout. No theme modifications or coding knowledge required. Setup takes just a few minutes with no developer help. Runs independently of InPost servers, staying stable even during their outages. Integrates seamlessly with BaseLinker, Apilo, and Furgonetka - the selected pickup point is automatically recognized. Carrier Calculated Shipping is required for the app to work (unavailable on the Basic Shopify plan) - detailed instructions appear after installation, before payment. Supported countries: Austria, Belgium, France, Hungary, Italy, Luxembourg, Netherlands, Poland, Portugal, Spain, United Kingdom. more Lightning-fast performance, even during peak traffic Shows nearest pickup points with Google Maps accuracy Supports delivery options: InPost Lockers, InPost Shops, Weekend delivery Resistant to frequent failures and technical interruptions from InPost
Schedule sales, drops and theme blocks. Revert any change with one click, even days later. Auto Schedule automates timed changes across your store — prices, discounts, product publishing, tags, storefront theme blocks and countdown timers. Run schedules once or on flexible recurring rules, plan promotions in advance, and upload hundreds at a time by CSV. Every change is recorded on a plain-English audit timeline, and any schedule can be reverted in one click — even days after it ran. Built for product drops, flash sales, rotating availability, daily deals and seasonal campaigns. Auto Schedule automates timed changes across your store — prices, discounts, product publishing, tags, storefront theme blocks and countdown timers. Run schedules once or on flexible recurring rules, plan promotions in advance, and upload hundreds at a time by CSV. Every change is recorded on a plain-English audit timeline, and any schedule can be reverted in one click — even days after it ran. Built for product drops, flash sales, rotating availability, daily deals and seasonal campaigns. more Audit every change with a timeline and revert any schedule in one click Show or hide any storefront section or block including banners on a schedule Schedule discounts, price changes, product publishing, tags and more Repeat schedules daily, weekly, monthly, or upload hundreds at once with CSV Add a fully customisable countdown timer to any product page or section
Handle orders in just a few minutes – pickup points and labels all in one place. Save time and simplify shipping management with the integration of InPost Paczkomaty and Orlen Paczka pickup points. The app runs fast, stable, and independently from external servers. It requires no theme modifications or developer assistance. It seamlessly integrates with systems like BaseLinker, automatically transferring pickup point details. Works even on the Basic plan and allows you to generate shipping labels directly in Shopify. Save time and simplify shipping management with the integration of InPost Paczkomaty and Orlen Paczka pickup points. The app runs fast, stable, and independently from external servers. It requires no theme modifications or developer assistance. It seamlessly integrates with systems like BaseLinker, automatically transferring pickup point details. Works even on the Basic plan and allows you to generate shipping labels directly in Shopify. more InPost Paczkomaty and Orlen Paczka pickup points - list & map Generate InPost & Orlen Paczka shipping labels directly in your store Starter plan: pickup point selection after payment (no CCS required) Pro plan: pickup point selection in Checkout (CCS required) Baselinker & Apilo integration – scale and automate order management
Create a Sticky Add To Cart button to make it easier to buy in your store, and support mobile. Instant Buy allows you to create a button to redirect store visitors to relevant pages like product pages, discount events, and back-in-stock announcements. Shoppers can easily and quickly add products to their cart instantly and be directed to the checkout page with one click checkout. Instant Buy allows you to add your Facebook Pixel ID and Pinterest Tag ID to the Add To Cart button. Statistics and counting the number of impressions and clicks on the Sticky Add To Cart button Instant Buy allows you to create a button to redirect store visitors to relevant pages like product pages, discount events, and back-in-stock announcements. Shoppers can easily and quickly add products to their cart instantly and be directed to the checkout page with one click checkout. Instant Buy allows you to add your Facebook Pixel ID and Pinterest Tag ID to the Add To Cart button. Statistics and counting the number of impressions and clicks on the Sticky Add To Cart button more Create a Sticky Add To Cart button to make it easier to buy in your store Recover abandoned carts with Facebook and Pinterest Remarketing Statistics and counting the number of impressions and clicks on the Ajax Button Customize the button's text, font size, and color to match with the main theme. Optimize execution speed and do not affect website speed
An invoice generator app to create and print PDF invoices, packing slips, and refund slips with ease iWeb Order Printer PDF Invoice is an order print and order invoice generator app that lets you easily create invoices, packing slips & refund slips. You can also print invoices, print packing slips & refund slips in PDF format. The best thing is you can print & download invoices, slips using this app without any limit. Automate sending these documents via email after each order. Use ready-made templates or customize invoices to match your brand. iWeb Order Printer PDF Invoice is an order print and order invoice generator app that lets you easily create invoices, packing slips & refund slips. You can also print invoices, print packing slips & refund slips in PDF format. The best thing is you can print & download invoices, slips using this app without any limit. Automate sending these documents via email after each order. Use ready-made templates or customize invoices to match your brand. more Create order invoices, refund slips & packing slips that match your brand style Download & print unlimited invoices, packing slips and refund slips in bulk Ready-to-use professional invoice templates & slips that you can fully customize Supports translation & multilanguage if you have added multiple languages Automatic invoice sending option via email to customers
Boost Your Customer Marketing with Kiliba's AI Autopilot Easily increase your revenue: retain your customers and re-engage inactive ones. The AI-powered customer engagement platform that fully automates email marketing for e-commerce: - Truly automate your customer marketing - AI-driven product recommendations - Let the AI Creator Studio inspire and speed up your email sends - Access best practices in autopilot mode - Integrate your data in just three clicks. Launch campaigns in under two minutes Easily increase your revenue: retain your customers and re-engage inactive ones. The AI-powered customer engagement platform that fully automates email marketing for e-commerce: - Truly automate your customer marketing - AI-driven product recommendations - Let the AI Creator Studio inspire and speed up your email sends - Access best practices in autopilot mode - Integrate your data in just three clicks. Launch campaigns in under two minutes more Store data processing and display Automatic emails using AI, available in 7 languages View email statistics 23 ready-to-use scenarios: abandoned carts, cross-sell, welcome, etc. Creation and customisation of promotional coupon codes
Nutrition, supplement, allergen & ingredient labels in multiple country formats & languages Nutrition information is one of the most important factors consumers consider when purchasing food & beverages. Familiar label formats help shoppers make informed decisions & give your site a professional appearance. Our app makes it easy to add labels anywhere on your site. All parts of the label can be customized & translated. No coding required. Our HTML-based nutrition, supplement, & drug facts tables also improve AI discoverability & SEO. This important data can't be discovered as an image. Nutrition information is one of the most important factors consumers consider when purchasing food & beverages. Familiar label formats help shoppers make informed decisions & give your site a professional appearance. Our app makes it easy to add labels anywhere on your site. All parts of the label can be customized & translated. No coding required. Our HTML-based nutrition, supplement, & drug facts tables also improve AI discoverability & SEO. This important data can't be discovered as an image. more Create nutrition, supplement, & drug fact labels using well-known formats Improve AI search recognition & SEO with HTML nutrition panels & JSON-LD schema Translate nutritional information into multiple languages Link label nutrients & ingredients to products, collections & pages on your site Export product labels to PDF files or images. Add images to nutrition tables.
Interlingue is a translation app born from our experience of building various D2C Store. This app is designed with the following concepts. #Fully support the scalability of online store and your business Shopify's strength is its scalability and flexibility to keep pace with business changes. The design concept is to keep the advantages. This app is designed with the following concepts. #Fully support the scalability of online store and your business Shopify's strength is its scalability and flexibility to keep pace with business changes. The design concept is to keep the advantages. more You can search and translate the theme strings you want to translate on the site We support bulk(batch) translation of all resources All translation data can be exported/imported as a CSV file
📊 Shopify App Statistics & Insights
Explore data-driven insights about Shopify app usage, trends, and market dynamics across millions of stores.
Looking for the Best Shopify Apps?
We've analyzed thousands of Shopify apps to identify the top performers in each category based on ratings and install counts.
Browse by Main Categories
Find the Perfect Shopify Apps for Your Store in 2026
Our comprehensive Shopify app directory helps you discover the best tools to grow your e-commerce business. Whether you're looking for marketing automation, inventory management, customer support, or any other functionality, our directory makes it easy to find, compare, and choose the right apps for your needs.
Why Use Shopify Apps in 2026?
Shopify apps extend the functionality of your store, helping you automate tasks, improve customer experience, increase sales, and streamline operations. With thousands of apps available, you can customize your store to meet your specific business requirements without needing custom development.
The right combination of Shopify apps can transform your online store by:
- Boosting conversion rates with optimized product pages and checkout experiences
- Increasing average order value through upsells, cross-sells, and bundle offers
- Enhancing customer retention with loyalty programs and personalized marketing
- Streamlining inventory management to prevent stockouts and overstock situations
- Automating marketing campaigns to reach customers at the right time with the right message
How to Choose the Right Shopify App in 2026
When selecting apps for your Shopify store, consider these critical factors:
- Functionality: Does the app solve your specific problem and align with your business goals?
- Pricing: Is the cost justified by the value it provides? Consider both monthly fees and transaction costs.
- Reviews and Ratings: What do other merchants say about it? Look for apps with consistent positive feedback.
- Support Quality: Does the developer offer responsive customer service and regular updates?
- Compatibility: Will it work seamlessly with your theme and other installed apps?
- Performance Impact: Will the app slow down your store? Speed is crucial for conversion rates.
- Security: Does the app follow best practices for data protection and privacy?
Popular Shopify App Categories
Explore our comprehensive collection of Shopify apps across these essential categories:
- Marketing and Conversion: Email marketing, social media, SEO, and popup tools
- Sales and Conversion: Upsell apps, discount codes, abandoned cart recovery
- Inventory and Order Management: Stock control, dropshipping, fulfillment
- Customer Support: Live chat, help desk, FAQ builders
- Store Design and Customization: Page builders, theme enhancers, product customizers
- Analytics and Reporting: Advanced tracking, customer insights, sales analytics
Browse our categories, read detailed app descriptions, and compare features to make informed decisions for your Shopify store. Our directory is regularly updated to ensure you have access to the latest and most effective e-commerce tools.
Frequently Asked Questions About Shopify Apps
Are Shopify apps worth the investment?
Yes, quality Shopify apps are typically worth the investment as they can significantly increase your store's functionality, improve customer experience, and boost sales. Many apps offer free trials or freemium models, allowing you to test their value before committing to a paid plan.
How many Shopify apps should I install?
It's best to be selective with your app installations. Too many apps can slow down your store and create conflicts. Focus on essential apps that address your specific business needs. Start with 5-10 core apps and evaluate their performance before adding more.
Can Shopify apps affect my store's loading speed?
Yes, some apps can impact your store's performance. Apps that add JavaScript to your storefront or make numerous API calls can slow down page loading times. Always monitor your store's performance after installing new apps and remove any that cause significant slowdowns.
What are the must-have Shopify apps for new stores?
New Shopify stores should prioritize apps for SEO, email marketing, analytics, social proof, and abandoned cart recovery. These categories address the fundamental needs of growing e-commerce businesses and typically offer the best return on investment.
Are free Shopify apps good enough or should I use paid ones?
While some free apps offer good functionality, paid apps generally provide more features, better support, and regular updates. Consider your specific needs and budget. Many successful stores use a mix of free and paid apps, investing in paid options for critical business functions.