Broke out auth logic into separate control