adapted from byu login