make Auth becoming an interface