How should I design UI metatables?

I have been trying to create custom metatables (classes) for UI (so I can make different functions). I am just wondering how the best way to go about this is. When I tried, I ran into some issues.
I had a Rect metatable in which display.newRect() was used, and I had a Label metatable in which display.newText() was used. In these two, I had a table in which the actual display UI objects were stored (in case I wanted to have more than one object), so I could have a function that could go through and clear them. Consequently, to find that object when I wanted to change it, I had a function that went through the table to find it (I added a custom name property).
Then, I made a Button metatable, which was a combination of a Rect and a Label. Now, when I want to change something in those metatables should I just call the function in the Rect/Label class or should I create functions in Button to call them? What other things have I done wrong? Thanks in advance!