significant changes to layout API