The solution. Did I miss any?