Rename classes and reduce surface area of public API. Fixes #16