virtual attributes