updated voteable module with metaprogramming example