start code uses virtLayer