refactoring is finished for now, code is cleaned up too. Going to return to MP