metaprogramming used for boilerplate variables