Merge pull request #1 from lucidmoon/refactor

Refactor & Restructure
Refactor