integrate Leiningen and refactor
Merge branch 'leiningen-integration'