Initial attempt at common auth model