Merge pull request #626 from annando/more-abstraction