Add surprise functions, cleanup