-void labeller_add_linelabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);
-void labeller_add_arealabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);
-
-void make_bitmap_icon(struct point_variant *v, struct sym_icon *si);
-void make_bitmap_point(struct point_variant *v, struct sym_point *sp);
-void make_bitmap_label(struct point_variant *v, struct sym_text *text);
-
-void make_graph(void);
-void label_graph(void);
-void join_edge(struct graph_edge *e, int dir);
-void bfs(void);
-void make_segments(void);
-
-void make_population(void);
-bool shall_terminate(void);
-void breed(void);
-void mutate(void);
-void elite(void);
-void rank_population(void);
-
-struct individual **perform_crossover(struct individual *parent1, struct individual *parent2);
-void perform_mutation(struct individual *individual);
-
-void init_placement(struct placement *p, struct request *r);
-void gen_coords_point(struct placement *p);
-void gen_coords(struct placement *p);
-struct map_part **get_parts(struct placement *symbol, struct individual *individual);
-
-int randint(int min, int max);
-
-void get_closure(struct placement **closure, struct placement *placement, struct individual *parent1, struct individual *parent2);
-void copy_symbols(struct placement **closure, struct individual *parent, struct individual *child);
-void move_symbol(struct placement *p);
-void move_symbol_point(struct placement *p);
-
-struct placement **get_overlapping(struct placement *p);
-void filter(struct placement **list, bool *pred);
-
-int flip(int a, int b);
-double randdouble(void);
+
+void labeller_add_point(struct symbol *sym, struct osm_object *object, z_index_t zindex);
+void labeller_notify_line(struct symbol *sym, z_index_t zindex);
+void labeller_add_label(struct symbol *sym, struct osm_object *o, z_index_t zindex);
+
+extern struct request_point *requests_point;
+extern struct request_line *requests_line;
+extern struct request_area *requests_area;
+
+extern struct longline *longlines;
+extern struct buffer_line *buffer_line;
+extern struct buffer_linelabel *buffer_linelabel;
+
+extern int dbg_segments;
+extern int dbg_plan;
+extern int dbg_requests;
+extern int dbg_graph;
+extern int dbg_bfs;
+extern int dbg_map_parts;
+extern int dbg_movement;
+extern int dbg_init;
+extern int dbg_overlaps;
+extern int dbg_rank;
+extern int dbg_evolution;
+extern int dbg_mutation;
+extern int dbg_breeding;
+
+extern int page_width_int;
+extern int page_height_int;
+
+extern int num_requests;
+extern int num_placements;
+
+extern int conf_map_part_width;
+extern int conf_map_part_height;
+
+extern uns num_map_parts_row;
+extern uns num_map_parts_col;
+extern uns num_map_parts;
+