1) Can someone please refer me to another article or maybe tutorial as I am very confused about the usage of the keyword 'this'. I do understand that we use it in the constructor of the class Today but why do we have to use it in the return value of the getWeatherType() 2) How are they related to each other? We're invoking the getWeatherType in the class Today which returns the value why do we use this.type 3) Why do we need String in the WeatherType interface as they are CONSTANTS? or also in the interface Weather why the word String and not final for instance? 4) Why are the interfaces in separate files? They are not classes? I hope someone can explain these to me. Thanks in advance