added reset and dispose methods