Flatten
Convert anonymous ParameterizedCallback to inner class
Make generic types fit