Initial refactor
Initial commit 2