added refactored algorithm and test projects