refactoring what the data object looks like and making tests pass
refactoring all views to take a data object