CONQUERING FUNDAMENTAL ARCHITECTURE IN JAVA: A THOROUGH MANUAL