update smart method