Expose Constructors

This lets users extend them if need be.

It also lets you accurately detect them with `instanceof` checks in third party code.