still need to fix one thing with the reset method