Layout framework