add MaskLayout and  OverlayLayout to make extending easier