- tweaks to the api to make it slightly more pleasant
- pushed private methods down