public TeeniGramGroup(int count, SuperstarOutput output = null, bool lastNames = false, double propability = 0.8d)
        {
            this.output = output;

            Random random = new Random();
            ListRandom <string> nameRandom = new ListRandom <string>(names, random);

            users = Enumerable.Repeat(new User(), count).Select(x => new User {
                name = nameRandom.Next(),
            }).ToList();

            if (!lastNames)
            {
                users.ForEach(x => x.name = x.name.Split(' ')[0]);
            }

            users.ForEach(user =>
            {
                ListRandom <User> listRandom = new ListRandom <User>(users
                                                                     .Where(x => x.name != user.name)
                                                                     .ToList(), random);
                user.following = listRandom.Next(random.Next(0, listRandom.Count)).ToList();
            });

            if (random.NextDouble() < propability)
            {
                int pos = random.Next(0, users.Count);

                users.ForEach(delegate(User user)
                {
                    if (!user.following.Contains(users[pos]))
                    {
                        user.following.Add(users[pos]);
                    }
                });

                users[pos].following.Clear();
            }
        }