Refactor JSON directory source and add acceptance test stub

Will go over this change with @rtrvrtg tomorrow morning