How does a virtual battery work?