add given/case pattern matching and de-uglify destructuring some more