add type tightening to get away from java.lang.Object to a real type as soon as possible