first stab at ads

Do not merge yet,
For review only now
Still don't understand why we are passing around `'Null'` string and not using `null` type