Adding flexibility with endpoints

Fixes #232

How do you want to handle squashing? I can squash myself on this pr so you can merge via the merge button on Github, or you could squash via the command line so you don't get the extraneous merge commit that comes from the merge button.