Why do the encoder need the virtual attributes ? Are they not carried by self ?