initial commit: AOP/metaprogramming