add virtual properties