client-side layout complete