refactor, separate responsability for generate tokens and users managment