first stab at ads

Do not merge yet,
For review only now
I would leave the logger out of the base decorate function, and instead, use the decorator to decorate functions with loggers :)