added block expressions and better llvm constant creation