# Overview
From the last chapter, you learned about Using Virtuoso. This chapter expands on this knowledge, showing how to improve your experience with Virtuoso and extend Virtuoso's base functionality
The chapter consists of:
- Virtuoso test step commands lists the possible commands that Virtuoso can take when writing test steps;
- Elements and self-healing explains how Virtuoso finds elements on your page and keeps their selectors up to date, making test maintenance a breeze;
- Reusing steps with library checkpoints introduces the checkpoint library, which allows you to re-use the same checkpoint in different goals of a project, or multiple times in the same journey;
- Snapshot comparison shows how to visually inspect and compare new versions against old versions of your software in Virtuoso;
- Performance monitoring details how you can measure user-centric performance metrics of your application;
- Timeline shows how to use the timeline in your goals;
- Extensions (extending Virtuoso's natural language) shows how to write scripts to extend the natural language functionality of Virtuoso;
- Environments shows how to configure and use environment-specific variables in your tests;
- Requirements presents how to manage your application / testing requirements, link them to your journeys, and check their coverage and traceability;
- Importing and exporting Virtuoso goals shows how to import goals to and export goals from Virtuoso, and also how to export goals as standalone Selenium scripts;
- Organization management details how organization owners can check their organization's usage statistics as well as manage its members, teams, apps, and general settings;
- Global search provides details on how to make the best use of the search option, allowing you to find the most relevant search results;
- API testing shows how to do API testing through Virtuoso.