abstract layout to partials