Start with metaprogramming and tdd