more details about virtual types