Project Refactor

Not complete, revert to previous version