adds methods and working tests