add a new .reset() method
complete all functionalities