changed __ prefixes to _ to make testing easier to access internals
tests and more sane defaults and return values
tests for presenter
refactoring display update handling
improved test and fixed errors found
cleanup and return values for externally called functions
added possibility for override (for test cases)
test cases and tolerance for missing outer array
(specification does not have outer array, but implementation does, handling both ways)
testcases missing from previous