I am a little confuse with the useful use of internal keyword in classes and properties in C#. Using the internal keyword doesn't we mixing logic with physical concepts? It is not bad idea mixing this two concepts?
For example, if we change the physical location for a specific class it can lead to errors even if we not change anything in the code.
And internal keyword is a OO concept or is just some concept invented for the C# language?