use local variables not fields, move creation to constructor and make final