add check if `source` is function, then thenify it