in middle of refactoring
most of the refactoring is done. some tests still fail, because of errors in the algorithms