Cleaned up authentication model