add user authentication implementation