add options and full name
simple metaprogramming example