support virtual attributes