refactor Layout, LayoutParameter and LayoutExecutant