layout can be optional and allow setting the default layout via config