support virtual attribtutes