Cleaned up Interface::update()