#10 core part is refactored but is not tested. The next step is
resolving compilation issues of model and test parts.