add layout func