Added type_register docs, more generic constructors as well