When attempting to write Substrate extensions that modify the behavior of existing Java code  one often runs into the problem that large amounts of functionality have been marked with any of private  protected  or final  making it impossible to easily call into  access  or subclass anything using Java