Added more tests, some getter function, rewrote calculateMinimumWidth()