Implementing different user registration
I would argue that you only need one type of user, but want multiple types of profiles. It sounds like you are looking for the profile module. From the module description:


  Why use profiles instead of user account fields?
  
  
  With profile, user account settings and user profiles are conceptually
  different things, e.g. with the “Profile” module enabled users get two
  separate menu links “My account” and “My profile”. 
  Profile allows for
  creating multiple profile types, which may be assigned to roles via
  permissions (e.g. a general profile + a customer profile)
  Profile supports private profile fields, which are only shown to the user owning the profile and to administrators.
  


It also supports multiple registration forms to allow users to register and create their profile in one form.

https://www.drupal.org/project/profile