@getdave discuss file structure for this implementation -> Closes #56