Remove opaque types

Was originally a pull request against the wrong branch. This should be tagged 0.1.1.