use class methods instead of dictrectly modifying