added type hint for type-family usage of promote. cleaned up deprecated smart constructors