basic authentication from scratch with some snapshots