Name changes, cleanup
Tweak the API, other cosmetic changes
enum class Type