mutate is abstract