implement virtual features