great refactoring mostly done, merger rendered parallel, need to valgrind