initial implementation of user authentication