Changed some method signatures. Changed whether some methods mutate underlying object or creates new.