Simplifying the hell out of the delegate with metaprogramming !