A general definition of a virus