Filtering and rendering are split out into new files