last param can be hash.
update