static Program()
{
utilities = new Dictionary<string, IUtility>();
foreach (Type type in typeof(Program).Assembly.GetTypes().Where(t => typeof(IUtility).IsAssignableFrom(t) && !t.IsInterface))
{
IUtility instance = (IUtility) type.GetConstructor(new Type[] { }).Invoke(new object[] { });
utilities[instance.CommandName] = instance;
}
}