public static void main(final String[] args) {
        parseArgs(args);

        /* load icons */
        for (final Command c : Command.values()) {
            final ImageIcon image = loadIcon("/genetic/res/"
                + c.toString()
                + ".png");
            COMMAND_ICONS.put(c, image);
        }

        /* load & prepare (in constructor) */
        final Field field = new Field();

        /* show the gui */
        final Gui guiFrame = new Gui(field);
        EventQueue.invokeLater(guiFrame);

        /* start the simulation */
        while (true) {
            try {
                final double sleepTime =
                    MS_PER_SECOND / Parameter.SIMULATION_SPEED.getValue();
                Thread.sleep((int) sleepTime);
            } catch (final InterruptedException e) {
                e.printStackTrace();
            }

            field.tick();
        }
    }