The VLF is based on a 'snap-in' architecture.
This means that there are many places that you can snap-in your own custom code to change how the VLF behaves.
Filters and command handlers are by far the most commonly used VLF snap-in points.
What nearly all snap-ins have in common is that they must use a prescribed VLF ancestor.
The ancestor typically provides services to them.
They can modify (i.e. customize) and extend the behavior of the ancestor.
VLF-WIN has quite a few additional snap-in points for you to use.
VLF-ONE has even more.
The snap-in points are summarized here as a future point of reference and to help you broadly understand the scope of what types of snap-ins are available:
VLF-ONE Snap-In Points Summary
VLF-WIN Snap-In Points Summary