by testing for abstract? we can ditch most of this work-flow.
work with DefaultLayout instance instead of re-instantiating it.
no need to handle false separately.