// Entries
        DRAW_AREA_WITH_LABEL(args, "count", NULL, GREEN, _("Entries"));
-       PRINT_LARGE_INTEGER(args, FIELD_CURRENT("count"), NULL);
-       PRINT_LARGE_INTEGER(args, FIELD_AVERAGE("count"), NULL);
-       PRINT_LARGE_INTEGER(args, FIELD_MINIMUM("count"), NULL);
-       PRINT_LARGE_INTEGER(args, FIELD_MAXIMUM("count"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "count", NULL, LARGE_INTEGER);
 
        // Limit
        DRAW_LINE1_WITH_LABEL(args, "max", NULL, LIMIT, _("Limit"), DASHES SKIPSCALE);
-       PRINT_LARGE_INTEGER(args, "max_cur", NULL);
+       PRINT(args, FIELD_CURRENT("max_cur"), NULL, LARGE_INTEGER);
        PRINT_NOTHING(args);
        PRINT_NOTHING(args);
        PRINT_NOTHING(args);
 
 
        // Context Switches
        DRAW_AREA_WITH_LABEL(args, "ctxt", NULL, GREEN, _("Context Switches"));
-       PRINT_LARGE_INTEGER(args, FIELD_CURRENT("ctxt"), NULL);
-       PRINT_LARGE_INTEGER(args, FIELD_AVERAGE("ctxt"), NULL);
-       PRINT_LARGE_INTEGER(args, FIELD_MINIMUM("ctxt"), NULL);
-       PRINT_LARGE_INTEGER(args, FIELD_MAXIMUM("ctxt"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "ctxt", NULL, LARGE_INTEGER);
 
        return 0;
 }
 
 #define PRINT_NOTHING(args)                                                            SCRIPT(args, "COMMENT:                ")
 #define PRINT(args, field, object, format, ...) \
        SCRIPT(args, "GPRINT:" FIELD ":" format, FIELD_AND_OBJECT(field, object) ##__VA_ARGS__)
-#define PRINT_PERCENTAGE(args, field, object)                  PRINT(args, field, object, PERCENTAGE)
-#define PRINT_INTEGER(args, field, object)                             PRINT(args, field, object, INTEGER)
-#define PRINT_LARGE_INTEGER(args, field, object)               PRINT(args, field, object, LARGE_INTEGER)
-#define PRINT_FLOAT(args, field, object)                               PRINT(args, field, object, FLOAT)
-#define PRINT_LARGE_FLOAT(args, field, object)                 PRINT(args, field, object, LARGE_FLOAT)
 #define PRINT_EOL(args)                                                                        SCRIPT(args, "COMMENT:" EOL)
 
 /*
 
        DRAW_AREA_BACKGROUND(args, "delta1+", NULL, COLOR_LOAD1, STACK);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args, "load15", NULL, COLOR_LOAD15, _("15 Minutes"));
-       PRINT_FLOAT(args, FIELD_CURRENT("load15"), NULL);
-       PRINT_FLOAT(args, FIELD_AVERAGE("load15"), NULL);
-       PRINT_FLOAT(args, FIELD_MINIMUM("load15"), NULL);
-       PRINT_FLOAT(args, FIELD_MAXIMUM("load15"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "load15", NULL, FLOAT);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args, "load5", NULL, COLOR_LOAD5, _("5 Minutes"));
-       PRINT_FLOAT(args, FIELD_CURRENT("load5"), NULL);
-       PRINT_FLOAT(args, FIELD_AVERAGE("load5"), NULL);
-       PRINT_FLOAT(args, FIELD_MINIMUM("load5"), NULL);
-       PRINT_FLOAT(args, FIELD_MAXIMUM("load5"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "load5", NULL, FLOAT);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args, "load1", NULL, COLOR_LOAD1, _("1 Minute"));
-       PRINT_FLOAT(args, FIELD_CURRENT("load1"), NULL);
-       PRINT_FLOAT(args, FIELD_AVERAGE("load1"), NULL);
-       PRINT_FLOAT(args, FIELD_MINIMUM("load1"), NULL);
-       PRINT_FLOAT(args, FIELD_MAXIMUM("load1"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "load1", NULL, FLOAT);
 
        // Header
        PRINT_HEADER4(args, _("Current"), _("Average"), _("Minimum"), _("Maximum"));
 
 
        // Draw the area outlines afterwards
        DRAW_AREA_OUTLINE_WITH_LABEL(args, "mem_used", NULL, COLOR_MEM_USED, _("Used Memory"));
-       PRINT_LARGE_FLOAT(args, FIELD_CURRENT("mem_used"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_AVERAGE("mem_used"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MINIMUM("mem_used"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MAXIMUM("mem_used"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "mem_used", NULL, LARGE_FLOAT);
 
        PRINT_EMPTY_LABEL(args);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("mem_used")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("mem_used")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("mem_used")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("mem_used")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "mem_used", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args, "buffers", NULL, COLOR_BUFFERS, _("Buffers"), STACK);
-       PRINT_LARGE_FLOAT(args, FIELD_CURRENT("buffers"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_AVERAGE("buffers"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MINIMUM("buffers"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MAXIMUM("buffers"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "buffers", NULL, LARGE_FLOAT);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args, "cached", NULL, COLOR_CACHED, _("Cached"), STACK);
-       PRINT_LARGE_FLOAT(args, FIELD_CURRENT("cached"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_AVERAGE("cached"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MINIMUM("cached"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MAXIMUM("cached"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "cached", NULL, LARGE_FLOAT);
 
        // Draw the total memory as a line
        DRAW_LINE1(args, "mem_total", NULL, COLOR_MEM_TOTAL);
        PRINT_EMPTY_LINE(args);
 
        DRAW_LINE1_WITH_LABEL(args, "swap_used", NULL, COLOR_SWAP_USED, _("Used Swap"), DASHES);
-       PRINT_LARGE_FLOAT(args, FIELD_CURRENT("swap_used"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_AVERAGE("swap_used"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MINIMUM("swap_used"), NULL);
-       PRINT_LARGE_FLOAT(args, FIELD_MAXIMUM("swap_used"), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "swap_used", NULL, LARGE_FLOAT);
 
        PRINT_EMPTY_LABEL(args);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("swap_used")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("swap_used")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("swap_used")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("swap_used")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "swap_used", NULL, PERCENTAGE);
 
        DRAW_LINE1_WITH_LABEL(args, "swap_total", NULL, COLOR_SWAP_TOTAL, _("Total Swap"), DASHES);
-       PRINT_LARGE_FLOAT(args, FIELD_CURRENT("swap_used"), NULL);
+       PRINT(args, FIELD_CURRENT("swap_used"), NULL, LARGE_FLOAT);
        PRINT_NOTHING(args);
        PRINT_NOTHING(args);
        PRINT_NOTHING(args);
 
 
        // Show the total usage
        PRINT_LABEL(args, _("Total"));
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("usage")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("usage")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("usage")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("usage")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "usage", NULL, PERCENTAGE);
 
        PRINT_EMPTY_LINE(args);
 
        // Draw the area outlines afterwards
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("user"), NULL, COLOR_USER, _("User"));
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("user")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("user")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("user")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("user")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "user", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("nice"), NULL, COLOR_NICE, _("Nice"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("nice")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("nice")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("nice")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("nice")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "nice", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("sys"), NULL, COLOR_SYS, _("Sys"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("sys")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("sys")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("sys")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("sys")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "sys", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("wait"), NULL, COLOR_WAIT, _("Wait"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("wait")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("wait")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("wait")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("wait")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "wait", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("irq"), NULL, COLOR_IRQ, _("Interrupt"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("irq")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("irq")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("irq")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("irq")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "irq", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("softirq"), NULL, COLOR_SOFTIRQ, _("Soft Interrupt"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("softirq")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("softirq")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("softirq")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("softirq")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "softirq", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("steal"), NULL, COLOR_STEAL, _("Steal"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("steal")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("steal")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("steal")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("steal")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "steal", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("guest"), NULL, COLOR_GUEST, _("Guest"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("guest")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("guest")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("guest")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("guest")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "guest", NULL, PERCENTAGE);
 
        DRAW_AREA_OUTLINE_WITH_LABEL(args,
                FIELD_PERCENT("guest_nice"), NULL, COLOR_GUEST_NICE, _("Guest Nice"), STACK);
-       PRINT_PERCENTAGE(args, FIELD_CURRENT(FIELD_PERCENT("guest_nice")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_AVERAGE(FIELD_PERCENT("guest_nice")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MINIMUM(FIELD_PERCENT("guest_nice")), NULL);
-       PRINT_PERCENTAGE(args, FIELD_MAXIMUM(FIELD_PERCENT("guest_nice")), NULL);
-       PRINT_EOL(args);
+       PRINT_CAMM(args, "guest_nice", NULL, PERCENTAGE);
 
        return 0;
 }
 
 
        // Draw the uptime
        DRAW_AREA_WITH_LABEL(args, "uptime_days", NULL, DEFAULT, _("Uptime"));
-       PRINT_INTEGER(args, "uptime_days_cur", EOL);
+       PRINT(args, "uptime_days_cur", NULL, INTEGER);
+       PRINT_EOL(args);
 
        return 0;
 }