put auth as a seperate wrapper