refactored array data source to view model
added tests
organized view controllers into groups
renamed some files for clarity