replace teh crazy exec with a slightly less crazy metaprogramming