ongoing refactor to layout