Refactor and Update

Nearing completion