public static List<Command> CreateTemplates()
{
var commands = from type in Assembly.GetCallingAssembly().GetTypes()
where type.IsSubclassOf(typeof(Command))
select type.GetMethod("CreateTemplate").Invoke(null, null) as Command;
return commands.ToList();
}