Refactoring test structure and execution
Updating gitignore for test executables
Refactoring list unit tests
Refactoring tree unit tests