Merge framework into Master

Restarting the Master branch with the new typing framework. mergeFramwork has all branches in it.