hw1 metaprogramming