feat(auth): add authentication
refactor(misc): little changes