Added three types of users and authentication