everything but handles user-log errors