Passport implementation. Fixes #8