Rebuild code to use simple factory DP and write test code, adjust project structure