Add authentication, improve responsibility, add autocomplete