frame layout with state