refactor row/section distinction to be cleaner and work with exports