static public ICommand as_command_chain(this IEnumerable <ICommand> commands)
        {
            ICommand chain = new NullCommand();

            commands.each(x => chain = chain.followed_by(x));
            return(chain);
        }
 static public Command as_command_chain(this IEnumerable<Command> commands){
     Command chain = new NullCommand();
     commands.each(x => chain = chain.followed_by(x));
     return chain;
 }