private List<Area> createAreas(CodelTableModel model) {
        List<Segment> segments = getSegmentsAtRow(model, 0);
        if (segments == null) {
            return null;
        }
        
        List<Area> areas = new ArrayList<Area>();
        
        for (Segment segment : segments) {
            Area area = new Area(segment);
            areas.add(area);
        }
        
        int height = model.getHeight();
        for (int y = 1; y < height; ++y) {
            segments = getSegmentsAtRow(model, y);
            //TODO //CHECK
            if (segments == null) {
                continue;
            }
            
            for (Segment segment : segments) {
                for (Area area : areas) {
                    area.tryToMerge(segment, DELTA_DOWN);
                }
                
                if (segment.hasParents() == false) {
                    Area area = new Area(segment);
                    areas.add(area);
                }
                
                if (segment.hasManyParents() == true) {
                    mergeSegmentAreas(areas, segment);
                }
                
            }
            
        }
        
        /*for (Area area : areas) {
            System.out.println(area);
            System.out.println("_________________________________");
        }*/
        return areas;
    }