We show that a minimal subset of Java 8 excluding classes supports a simple and natural programming style, which we call ?-based object-oriented programming. That is, on one hand the programmer can use tuples in place of objects (class instances), and tuples can be desugared to lambdas following their classical encoding in the ?-calculus. On the other hand, lambdas can be equipped with additional behaviour, thanks to the fact that they may implement interfaces with default methods, hence inheritance and dynamic dispatch are still supported. We formally describe the encoding by a translation from FJ?, an FJ variant including lambdas and interfaces with default methods, to FJ?-, a subset of FJ? with no classes (hence no constructors and field...