add generic frame holder for all the elements

correctly hides backgrounds / borders when element frames are hidden

also changed element parenting