Dynamic subclass APIs make Java seem young again