I just updated the pull request per feedback. In terms of an API redesign, let me consolidate my thoughts and respond to #6.