refactory no layout