#18 - Refactor API to make it more consistent