home work 2 without metaprogramming