Refactor directions

Not a great idea to add all expected params in the function signature.
As google adds more stuff, your function would have to accept more and
more params. Instead pass params as a object. This would keep the
signature neat and tidy