outsource types
update unittests
Debugging, Profiling, Implementing reduction trees