refactor into separate renders for diff layouts