use virtual data for shared implementations