Refactor
Add support for directions