Finished day 2
Adds day 3 metaprogramming stuff