generateCell works only for the last column

I have a Table and am using generateCell to return a layout which has an image and description. For now I want to draw the layout for all the rows in that column but image and description can only be seen for the last row. Any ideas ??

In the browser I could see the horizontal layout being created but it is empty

<div class="v-horizontallayout v-layout v-horizontal v-widget"></div>
public class PermissionType implements Table.ColumnGenerator {

    private static final long serialVersionUID = 1L;

    Image image;
    Label description;

    public PermissionType(final String description, final Image image) {
        this.description = new Label(description);
        this.image = image;
    }
    @Override
    public Object generateCell(final Table source, final Object itemId, final Object columnId) {
        final HorizontalLayout layout = new HorizontalLayout();
        layout.addComponent(image);
        layout.addComponent(description);
        return layout;
    }
}