Add recursive searching

Closes #2