* updated to handle anonymous user