Restructure solution so that core logic is in a separate library
Restructure solution so that core logic is in a separate library