add layout protocol