CONQUERING FUNDAMENTAL ARCHITECTURE IN JAVA: A DETAILED EXPLANATION