public Particle Generate(double x, double y) { var result = new Particle(x, y, Lifetime.Generate()); foreach (var descriptor in _descriptors) { result.AttachBehavior(descriptor.MakeBehavior()); } return(result); }