added reset functionality & changed helper methods to private