some infrastructure for our two different views