%dir entries, and callback()

Addresses #19 and #12.