how is computer virus different from computer worm