abstract virus design