adding first take at interfaces in auth.go, also doc.go