initial refactor
finish refactoring project. It now supports swagger without MVC dependency