Adding in work already done.

Looking to refactor and prepare for release soon.