fixes #31: split out and expose dependency traversal

more tests and async interface to come soon