initial commit, requires review and testing.