Generalized Vertex Algebras