new accessor methods
gradle build file
make constructor protected
tryRecycle method
actually better to make it public
is valid should look at everything