return self on save