Started on a tiny grease pencil sidebar (based on Pro Sidebar)

Hello
I have modified pro sidebar for my specific wish of having a super basic interface for drawing, masking and animating with grease pencil. I am still finding my way through the api docs. Ive used template_list() in grid mode here but I’m not sure how to add display other more stuff in a gui form, specifically all gp object in the current scene, and possibly all points in the selected stroke?

    def draw(self, context):
        layout = self.layout
        obj = context.object
        if obj.type == 'GPENCIL':
            
            #
            row = layout.column(align=True)
            row.operator('object.mode_set',text="Object",icon = 'CHECKBOX_HLT' if obj.mode == 'OBJECT' else 'BLANK1').mode = 'OBJECT'
            row.operator('object.mode_set',text="Edit",icon = 'CHECKBOX_HLT' if obj.mode == 'EDIT_GPENCIL' else 'BLANK1').mode = 'EDIT_GPENCIL'
            row.operator('object.mode_set',text="Draw",icon = 'CHECKBOX_HLT' if obj.mode == 'PAINT_GPENCIL' else 'BLANK1').mode = 'PAINT_GPENCIL'
            row.operator('object.mode_set',text="Sculpt",icon = 'CHECKBOX_HLT' if obj.mode == 'SCULPT_GPENCIL' else 'BLANK1').mode = 'SCULPT_GPENCIL'

            #
            box = layout.box()
            row = box.row()
            row.label(text="Object:")
            row.operator("object.gpencil_add", text="+")
            row.operator("object.gpencil_add", text="++")
            #box.template_list() #todo 1: list all GP objects?

            #
            box = layout.box()
            row = box.row()
            row.label(text="Layer:")
            row.operator("gpencil.layer_add", text="+")
            row.operator("gpencil.layer_add", text="++") #todo 2: can I use the previously selected layer as a mask on the layer that is create here?
            box.template_list("GPENCIL_UL_layer", "", obj.data, "layers", obj.data.layers, "active_index", rows=1, type='GRID')
            
            #
            box = layout.box()
            row = box.row()
            row.label(text="Material:")
            row.operator('object.material_slot_add', text="+")
            row.operator('object.material_slot_add', text="++") #todo 3: can I set the material on creation to make this button bind to a filled material?
            box.template_list("GPENCIL_UL_matslots", "", obj, "material_slots", obj, "active_material_index", rows=1, type='GRID')
            
            #
            box = layout.box()
            row = box.row()
            row.label(text="Brush:")
            row.prop("BrushGPencilSettings", "use_settings_stabilizer")

            #
            #box = layout.box()
            #box.label(text="Selection:")
            #box.template_list("GPENCIL_UL_vgroups", "", obj, "vertex_groups", obj.vertex_groups, "active_index", rows=1, type='GRID')

            #
            box = layout.box()
            colum = box.column()
            column.operator("bpy.context.scene.frame_set(1)", text="1")