update surface controller