This document describes a featherweight approach to studying foundations of object-oriented languages (FOOL). It proposes Featherweight Java (FJ), a minimal core calculus for modeling Java-like languages. FJ removes irrelevant details to focus on central issues like subtyping. The author has applied FJ to study language extensions like generics and inner classes. FJ provides a simple yet effective framework for formally modeling and reasoning about object-oriented type systems.