fancier delegation using a module